2010-08-16 12 views

Antwort

0

Dies sollte es abdecken: http://msdn.microsoft.com/en-us/library/ms733775.aspx (Siehe Abschnitt Client)

+0

Die Frage nach speziell fragt (HTTP) Standardauthentifizierung. Ihre verknüpfte Referenz zeigt nur WSHttpBinding. WSHttpBinding verwendet Benutzernamen und Kennwortanmeldeinformationen im Authentifizierungsblock des Headers des SOAP-Umschlags, was nicht mit der (HTTP-) Basisauthentifizierung identisch ist. – AlwaysLearning

0

Ich würde sagen, es ist wahrscheinlich, wie der Web-Service erwartet Sie übergeben die Informationen angewiesen ist. Schließlich sind Sie nur der Verbraucher.

Having said that, ist es üblich, Web-Services die Benutzer-ID und das Passwort in der SOAP-Header übergeben haben.

Sie auf diese link für eine Beispielimplementierung dieses Szenarios

Beispiel Soap Nachricht

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Header> 
    <AUTHHEADER xmlns="http://tempuri.org/"> 
     <USERNAME>string</USERNAME> 
     <PASSWORD>string</PASSWORD> 
    </AUTHHEADER> 
    </soap:Header> 
    <soap:Body> 
    <SENSITIVEDATA xmlns="http://tempuri.org/" /> 
    </soap:Body> 
</soap:Envelope> 
21

Ist die Standardauthentifizierung in der Konfigurationsdatei konfiguriert beziehen kann? Müssen Sie nur Anmeldeinformationen übergeben oder benötigen Sie auch einen sicheren Transport (HTTPS)?

Zuerst müssen Sie die Bindung zum Einrichten der Standardauthentifizierung

-Setup für HTTP-Bindung zu unterstützen: Bindung

<bindings> 
    <basicHttpBinding> 
    <binding name="BasicAuth"> 
     <security mode="TransportCredentialOnly"> 
     <transport clientCredentialType="Basic" /> 
     </security> 
    </binding> 
    </basicHttpBinding> 
</bindings> 

-Setup für HTTPS:

<bindings> 
    <basicHttpBinding> 
    <binding name="BasicAuthSecured"> 
     <security mode="Transport"> 
     <transport clientCredentialType="Basic" /> 
     </security> 
    </binding> 
    </basicHttpBinding> 
</bindings> 

Client-Endpunkt definierte Konfiguration zu verwenden, hat wie:

<client> 
    <endpoint address="..." 
      name="..." 
      binding="basicHttpBinding" 
      bindingConfiguration="BasicAuth" 
      contract="..." /> 
</client> 

Dann müssen Sie die Anmeldeinformationen an den Proxy-Pass:

proxy = new MyServiceClient(); 
proxy.ClientCredentials.UserName.UserName = "..."; 
proxy.ClientCredentials.UserName.Password = "..."; 
Verwandte Themen