2010-08-16 17 views

Odpowiedz

0

ten powinien obejmować: http://msdn.microsoft.com/en-us/library/ms733775.aspx (Zobacz sekcję Client)

+0

Pytanie specjalnie prosi o (HTTP) Basic Authentication. Twoje połączone odniesienie demonstruje tylko WSHttpBinding. WSHttpBinding używa poświadczeń użytkownika + hasło w bloku autorskim nagłówka koperty SOAP, co nie jest tym samym, co (HTTP) podstawowym uwierzytelnieniem. – AlwaysLearning

0

Powiedziałbym, że prawdopodobnie zależała od sposobu serwis internetowy oczekuje, że do przekazania informacji. Przecież jesteś tylko konsumentem.

Powszechnie zdarza się, że usługi sieciowe mają przekazywać identyfikator użytkownika i hasło w nagłówku SOAP.

Można odwołać się do tego link dla realizacji tego scenariusza próbki

Próbka Mydło Wiadomość

<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

Czy uwierzytelnianie podstawowe skonfigurowany w pliku konfiguracyjnym? Czy musisz przekazywać tylko dane uwierzytelniające, czy też potrzebujesz bezpiecznego transportu (HTTPS)?

Najpierw trzeba skonfigurować wiązanie do wspierania uwierzytelniania podstawowego

Ustawienia HTTP oprawa:

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

konfiguracji dla HTTPS wiążących:

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

końcowy klient musi użyć zdefiniowaną konfigurację na przykład:

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

Następnie trzeba przejść do poświadczenia pełnomocnika:

proxy = new MyServiceClient(); 
proxy.ClientCredentials.UserName.UserName = "..."; 
proxy.ClientCredentials.UserName.Password = "..."; 
Powiązane problemy