Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Michal Pflegshörl:11.12.2017 13:34

Ahoj všem,
dokázal by někdo v C# pomocí dokumentace na tomto odkazu http://www.cuzk.cz/…zkousku.aspx získat ID osoby zadané pomocí rodného čísla? Já vymyslel tenhle kód, ale poslední řádek mi vrací chybu "Error on verifying message against security policy Error code:1000". Vím, že před každým dotazem je potřeba se přihlásit, ale nikde v dokumentaci jsem se nedozvěděl jak.

try
{
        najdiOSRequest NajdiOS = new najdiOSRequest();
        ItemsChoiceType4[] ChoiceType = new ItemsChoiceType4[1];
        ChoiceType[0] = ItemsChoiceType4.rc;
        string[] Item = new string[1];
        Item[0] = "400302/707";
        NajdiOS.NajdiOSRequest1 = new NajdiOSRequestType();
        NajdiOS.NajdiOSRequest1.ItemsElementName = ChoiceType;
        NajdiOS.NajdiOSRequest1.Items = Item;

        vyhledatClient Klient = new vyhledatClient();
        NajdiOSResponseType NalezenaOS = Klient.najdiOS(NajdiOS.NajdiOSRequest1);

        Console.WriteLine(NalezenaOS.ToString());
}
catch (Exception err)
{
        Console.WriteLine("!CHYBA! " + err.Message);
}
Editováno 11.12.2017 13:35
 
Odpovědět
11.12.2017 13:34
Avatar
Neaktivní uživatel:11.12.2017 15:37

Ahoj,

Musis dodat credentials:

<code>
vyhledatClient Klient = new vyhledatClient();
Klient.ClientCre­dentials.User­Name.UserName = "WSTEST";
Klient.ClientCre­dentials.User­Name.Password = "WSHESLO";
Klient.ClientCre­dentials.Window­s.ClientCreden­tial = new NetworkCreden­tial();
</code>

uprava app.configu:

<code>
<bindings>
<customBinding>
<binding name="CustomSo­apBinding">
<security includeTimestam­p="false"
authentication­Mode="UserName­OverTransport"
defaultAlgorit­hmSuite="Basic256"
requireDerived­Keys="false"
messageSecuri­tyVersion="WSSe­curity10WSTrus­tFebruary2005WSSe­cureConversati­onFebruary2005WSSe­curityPolicy11Ba­sicSecurityPro­file10">
</security>
<textMessageEn­coding messageVersion="So­ap11"></textMes­sageEncoding>
<httpsTransport maxReceivedMes­sageSize="20000000­00"/>
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="https://k­atastr.cuzk.cz/tri­al/ws/wsdp/2.6/vyh­ledat"
binding="custom­Binding"
bindingConfigu­ration="Custom­SoapBinding"
contract="Ser­viceReference1­.vyhledat"
name="RealTime­Online" />
</client>
</code>


Volanie uspesne preslo.
M.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
11.12.2017 15:37
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:11.12.2017 15:38

Vysledek volani:

Nahoru Odpovědět
11.12.2017 15:38
Neaktivní uživatelský účet
Avatar
Michal Pflegshörl:12.12.2017 9:19

Super! Díky za pomoc.
Já si hned, po zkušenostech s IT podporou ve státní správě myslel, že na odpovědi "Jazyk C# není podporován" bude jen málo pravdy :-)

 
Nahoru Odpovědět
12.12.2017 9:19
Avatar
Odpovídá na Michal Pflegshörl
Michal Pflegshörl:29.1.2018 11:08

Tak v testovacím prostředí všechno funguje bez problémů.
Když jsem přešel k ostrému provozu vrací se mi chyba "Failed to assert identity with UsernameToken." Přihlašovací údaje mám určitě správné.
V app.config jsem upravil pouze

<endpoint address="https://k­atastr.cuzk.cz/tri­al/ws/wsdp/2.6/vyh­ledat"
binding="custom­Binding" bindingConfigu­ration="Katas­trSoapBinding"
contract="KN_Vyh­ledat.vyhledat" name="vyhledat­SoapHttpPort" />

na

<endpoint address="https://k­atastr.cuzk.cz/ws/wsdp/­2.6/vyhledat"
binding="custom­Binding" bindingConfigu­ration="Katas­trSoapBinding"
contract="KN_Vyh­ledat.vyhledat" name="vyhledat­SoapHttpPort" />

binding je pro oba případy stejný:
<binding name="KatastrSo­apBinding">
<security includeTimestam­p="false"
authentication­Mode="UserName­OverTransport"
defaultAlgorit­hmSuite="Basic256"
requireDerived­Keys="false"
messageSecuri­tyVersion="WSSe­curity10WSTrus­tFebruary2005WSSe­cureConversati­onFebruary2005WSSe­curityPolicy11Ba­sicSecurityPro­file10">
</security>
<textMessageEn­coding messageVersion="So­ap11">
</textMessage­Encoding>
<httpsTransport maxReceivedMes­sageSize="20000000­00"/>
</binding>

 
Nahoru Odpovědět
29.1.2018 11:08
Avatar
Odpovídá na Michal Pflegshörl
Neaktivní uživatel:2.2.2018 23:19

Ahoj,
tak to je divne, ze test a produkcia su rozdielne, co sa tyka nastavenia bindingu. Kontaktuj dodavatela webovej sluzby s prosbou o pomoc, alebo posli podklady do PM, pozriem sa na to.

M.

Nahoru Odpovědět
2.2.2018 23:19
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michal Pflegshörl:12.5.2021 8:10

Ahoj,
nakonec mi to bez problémů funguje s tímto endpointem

<bindings>
<customBinding>
<binding name="KatastrSoapBinding">
        <security defaultAlgorithmSuite="Default"
                        authenticationMode="UserNameOverTransport"
                        requireDerivedKeys="false"
                        includeTimestamp="false"
                        messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10" />
        <textMessageEncoding messageVersion="Soap11" />
         <httpsTransport maxReceivedMessageSize="2000000000" />
         <textMessageEncoding messageVersion="Soap11" />
         <httpsTransport maxReceivedMessageSize="2000000000" />
</binding>
</customBinding>
</bindings>

<client>
        <endpoint address="https://katastr.cuzk.cz/ws/wsdp/2.8/vyhledat"
                        binding="customBinding"
                        bindingConfiguration="KatastrSoapBinding"
                        contract="KN_Vyhledat.vyhledat"
                        name="vyhledatSoapHttpPort" />
</client>
 
Nahoru Odpovědět
12.5.2021 8:10
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.