locked
BasicHttpBinding und Proxy RRS feed

  • 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);
    

     

     

    Donnerstag, 6. Oktober 2011 18:03

Alle Antworten

  • WebRequest.DefaultWebProxy = new WebProxy(proxyAddress) 
    { 
        Credentials = new NetworkCredential(userName, password), 
    }; 
    

    Donnerstag, 6. Oktober 2011 14:01
  • 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);
    

     

     

    Donnerstag, 6. Oktober 2011 18:03
  • Hallo Timo,

    danke, es funktioniert jetzt bei mir.

    Schöne Grüße

    FRANK PANNIER

    Freitag, 7. Oktober 2011 06:44
  • Hallo Frank,

    gern geschehen.

    Wäre supern wenn Du markieren könntest, dass Dir meine Antwort geholfen hat.

    Gruß Timo

    Freitag, 7. Oktober 2011 10:34