IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

Diskuze: Vytvoření Binding pro klienta webové služby

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Michal Pflegshörl:5.3.2021 14:12

Potřebuji v C# kódu nadefinovat System.Service­Model.Channel­s.Binding podle níže uvedené konfigurace pro připojení k webové službě.

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

<endpoint address="https://wsdptrial.cuzk.cz/trial/ws/wsdp/2.8/vyhledat"
                binding="customBinding" bindingConfiguration="KatastrSoapBinding"
                contract="KN_Vyhledat.vyhledat" name="vyhledatSoapHttpPort" />

Zkusil jsem: Ve Winform aplikaci stačilo přidat službu do Service References a v configu se Binding vytvořil automaticky.
V kódu se pak klient nadefinoval jednoduše takto

KN_Vyhledat.vyhledatClient KlientHledani = new KN_Vyhledat.vyhledatClient();
KlientHledani.ClientCredentials.UserName.UserName = Uzivatel;
KlientHledani.ClientCredentials.UserName.Password = Heslo;
KlientHledani.ClientCredentials.Windows.ClientCredential = new NetworkCredential();

Chci docílit: V controleru aplikace ASP.NET Core MVC je pro nedefinování klienta vyžadován Binding a EndpointAddress

KN_Vyhledat.vyhledatClient KlientHledani = new KN_Vyhledat.vyhledatClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress)

EndpointAddress nastavím, ale s Binding si nevím rady.

 
Odpovědět
5.3.2021 14:12
Avatar
Michal Pflegshörl:13.4.2021 8:51

Nakonec jsem to dal dohromady takto

SecurityBindingElement Security = SecurityBindingElement.CreateUserNameOverTransportBindingElement();
Security.MessageSecurityVersion = MessageSecurityVersion.WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10;
Security.IncludeTimestamp = false;

TextMessageEncodingBindingElement TextMessageEncoding = new TextMessageEncodingBindingElement();
TextMessageEncoding.MessageVersion = MessageVersion.Soap11;

HttpsTransportBindingElement HttpsTransport = new HttpsTransportBindingElement();
HttpsTransport.MaxReceivedMessageSize = 2000000000;

CustomBinding bind = new CustomBinding();
bind.Elements.Add(Security);
bind.Elements.Add(TextMessageEncoding);
bind.Elements.Add(HttpsTransport);
Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět
13.4.2021 8:51
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 2 zpráv z 2.