Využij akce až 80 % zdarma při nákupu e-learningu. Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Pythonu
discount week 80

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

Aktivity
Avatar
Michal Pflegshörl:5. března 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. března 14:12
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Michal Pflegshörl:13. dubna 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. dubna 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.