2010-08-16 16 views

risposta

0

Questo dovrebbe coprire: http://msdn.microsoft.com/en-us/library/ms733775.aspx (vedi la sezione client)

+0

La domanda chiede specificamente (HTTP) l'autenticazione di base. Il tuo riferimento collegato mostra solo WSHttpBinding. WSHttpBinding utilizza le credenziali username e password nel blocco auth dell'intestazione della busta SOAP, che non è la stessa cosa dell'autenticazione di base (HTTP). – AlwaysLearning

0

direi che è probabile che dipenderà da come il servizio web si aspetta di passare le informazioni. Dopo tutto, sei solo il consumatore.

Detto questo, è normale che i servizi Web abbiano l'ID utente e la password passati nell'intestazione SOAP.

È possibile fare riferimento a questo link per un esempio di implementazione di questo scenario

Esempio Sapone Messaggio

<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

è l'autenticazione di base configurato nel file di configurazione? Hai bisogno di passare solo le credenziali o hai anche bisogno di un trasporto sicuro (HTTPS)?

Per prima cosa è necessario impostare vincolante per supportare l'autenticazione di base

installazione per HTTP binding:

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

installazione per HTTPS vincolanti:

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

endpoint client deve usare configurazione definita Mi piace:

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

Poi si deve passare le credenziali al proxy:

proxy = new MyServiceClient(); 
proxy.ClientCredentials.UserName.UserName = "..."; 
proxy.ClientCredentials.UserName.Password = "..."; 
Problemi correlati