2016-05-09 22 views
6

Próbuję wywołać usługę sieciową SOAP, jednak pojawia się błąd: Dodatkowe informacje: Nazwa użytkownika nie jest podana. Podaj nazwę użytkownika w ClientCredentials.Jak przekazywać dane uwierzytelniające do usługi sieciowej SOAP?

Pomyślałem, że mogę ustawić client.ClientCredentials na nowe wystąpienie NetworkCredentials. Jednak ClientCredentials jest tylko do odczytu. Jak mogę uzyskać te informacje, aby uzyskać dostęp do usługi sieciowej?

myService.ServiceClient client = new myService.ServiceClient(); 
    // This won't work since its read only.     
    client.ClientCredentials = new System.Net.NetworkCredential("username", "password", "domain"); 
    string version = client.getData(); 

EDIT: Oprawa:

<binding name="VersionHttpBinding"> 
    <security mode="TransportCredentialOnly"> 
     <transport clientCredentialType="Basic" /> 
    </security> 
    </binding> 
+0

Co to jest metoda uwierzytelniania usługa internetowa? Podstawowe uwierzytelnianie lub coś innego? – mikey

+0

Zaktualizowany zgodnie z życzeniem. – PrivateJoker

Odpowiedz

9

Musisz ustawić poświadczeń na kliencie, podobnie jak pokazano in this MSDN article:

client.ClientCredentials.UserName.UserName = "my_user_name"; client.ClientCredentials.UserName.Password = "my_password";

+0

Jestem w 99% pewien, że zrobiłem dokładnie to w przeszłości. Czy próbowałeś zastąpić cały obiekt (który jak sądzę * jest * tylko do odczytu) lub ustawić indywidualne właściwości obiektu, tak jak w przykładzie. –

+0

Dziękuję. To zadziałało, a dzięki za link! – PrivateJoker

+0

. Nazwisko użytkownika.Password. Wesoły – Gaspa79

Powiązane problemy