Benutzer mit den meisten Antworten
BasicHttpBinding und Proxy

Frage
-
Hallo,
zur Kommunikation mit einem Webservice benutze ich BasichttpBinding.
Hier kann ich die Adresse des Proxies angeben:
BasicHttpBinding myBinding = new BasicHttpBinding();
myBinding.Security.Mode = BasicHttpSecurityMode.Transport;
//Proxy
myBinding.UseDefaultWebProxy = false;
myBinding.ProxyAddress = new Uri(<Proxyadresse>);
Wie kann ich jetzt Username und Passwort mitgeben ?
Danke und schöne Grüße
FRANK PANNIER
- Bearbeitet soccersoft Donnerstag, 6. Oktober 2011 13:54
Donnerstag, 6. Oktober 2011 13:50
Antworten
-
Hallo,
in dem Moment wo Du die ServiceReference hinzufügst kannst Du ja keinen Proxy auswählen.
Wenn Du nun das von mir beschriebene WebRequest.DefaultWebProxy Objekt vor Deinem Aufruf erzeugst, wird dieser Proxy für Deine Request automatisch benutzt ohne, dass Du ihn angeben musst.
WebRequest.DefaultWebProxy = new WebProxy(proxyAddress) { Credentials = new NetworkCredential(userName, password), }; BasicHttpBinding myBinding = new BasicHttpBinding(); myBinding.Security.Mode = BasicHttpSecurityMode.Transport; EndpointAddress endpointAddressWithHeaders = new EndpointAddress(new Uri(<Adresse WebService>)); srTeilnehmerAnmelden.AnmeldungBeimTraegerErstverfahrenClient cAnmelden = new srTeilnehmerAnmelden.AnmeldungBeimTraegerErstverfahrenClient(myBinding, endpointAddressWithHeaders); cAnmelden.Endpoint.Behaviors.Add(new InspectorBehavior(new ClientInspector(new SecurityHeader(cBenutzer.Benutzername,cBenutzer.Passwort )))); srTeilnehmerAnmelden.AnmeldungBeimTraegerErstverfahrenOutputMessage cErgebnis = cAnmelden.teilnehmerAnmelden(cntInputMessage);
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 7. Oktober 2011 11:26
Donnerstag, 6. Oktober 2011 18:03
Alle Antworten
-
Hallo Timo,
danke für Deine Antwort. Aber wie binde ich das jetzt mit meinem BasicHttpBinding ein ? Folgenden Code benutze ich, um einen javabasierten Webservice mit Header-Authentifizierung anzusprechen. Jetzt muss ich noch den eigenen Proxy überwinden:
BasicHttpBinding myBinding = new BasicHttpBinding();
myBinding.Security.Mode = BasicHttpSecurityMode.Transport;
EndpointAddress endpointAddressWithHeaders = new EndpointAddress(new Uri(<Adresse WebService>));
srTeilnehmerAnmelden.AnmeldungBeimTraegerErstverfahrenClient cAnmelden = new srTeilnehmerAnmelden.AnmeldungBeimTraegerErstverfahrenClient(myBinding, endpointAddressWithHeaders);
cAnmelden.Endpoint.Behaviors.Add(new InspectorBehavior(new ClientInspector(new SecurityHeader(cBenutzer.Benutzername,cBenutzer.Passwort ))));
srTeilnehmerAnmelden.AnmeldungBeimTraegerErstverfahrenOutputMessage cErgebnis = cAnmelden.teilnehmerAnmelden(cntInputMessage);
Danke und Gruß
FRANK PANNIER
Donnerstag, 6. Oktober 2011 14:22 -
Hallo,
in dem Moment wo Du die ServiceReference hinzufügst kannst Du ja keinen Proxy auswählen.
Wenn Du nun das von mir beschriebene WebRequest.DefaultWebProxy Objekt vor Deinem Aufruf erzeugst, wird dieser Proxy für Deine Request automatisch benutzt ohne, dass Du ihn angeben musst.
WebRequest.DefaultWebProxy = new WebProxy(proxyAddress) { Credentials = new NetworkCredential(userName, password), }; BasicHttpBinding myBinding = new BasicHttpBinding(); myBinding.Security.Mode = BasicHttpSecurityMode.Transport; EndpointAddress endpointAddressWithHeaders = new EndpointAddress(new Uri(<Adresse WebService>)); srTeilnehmerAnmelden.AnmeldungBeimTraegerErstverfahrenClient cAnmelden = new srTeilnehmerAnmelden.AnmeldungBeimTraegerErstverfahrenClient(myBinding, endpointAddressWithHeaders); cAnmelden.Endpoint.Behaviors.Add(new InspectorBehavior(new ClientInspector(new SecurityHeader(cBenutzer.Benutzername,cBenutzer.Passwort )))); srTeilnehmerAnmelden.AnmeldungBeimTraegerErstverfahrenOutputMessage cErgebnis = cAnmelden.teilnehmerAnmelden(cntInputMessage);
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 7. Oktober 2011 11:26
Donnerstag, 6. Oktober 2011 18:03