2013-06-10 34 views
11

Tôi đang sử dụng dịch vụ web bằng cách sử dụng WSDL trong ứng dụng windows. Khi tôi cố gắng sử dụng phương pháp, tôi nhận được lỗi sau: -Cách chuyển thông tin xác thực người dùng vào dịch vụ web?

The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was '"

{"The remote server returned an error: (401) Unauthorized."}

Tôi có thông tin xác thực người dùng nhưng không biết cách chuyển nó bằng cách sử dụng mã C# trong ứng dụng windows.

+0

thế nào bạn đang sử dụng dịch vụ web của bạn? WCF? – Jay

+0

wsdlsoap ràng buộc ... tôi đoán. Tôi đang đọc nó từ tập tin wsdl.xml. Hoặc bạn có nghĩa là loại ứng dụng tôi đang sử dụng để tiêu thụ dịch vụ web sau đó ứng dụng Windows của nó. – user1327064

Trả lời

12

Đây là cách nó được làm việc cho tôi: -

Config thiết lập tập tin trông như thế này: -

<configuration> 
    <system.serviceModel> 
     <bindings> 
      <basicHttpBinding> 
      <binding name="bindingName" > 
       <security mode="TransportCredentialOnly"> 
       <transport clientCredentialType="Basic" proxyCredentialType="None" realm=""/> 
       <message clientCredentialType="UserName" algorithmSuite="Default"/> 
       </security> 
      </binding> 

      </basicHttpBinding> 
     </bindings> 
     <client> 
      <endpoint address="http://10.10.10.10:1880/testpad/services/Testwebservice" 
       binding="basicHttpBinding" bindingConfiguration="bindingName" 
       contract=testService.GetData" name="test_Port1" /> 
     </client> 
    </system.serviceModel> 
</configuration> 

và ở đây tôi đang đi qua thông tin người dùng: -

var ser = new GetDataClient(); 
ser.ClientCredentials.UserName.UserName = "userid"; 
ser.ClientCredentials.UserName.Password = "Pa$$word1"; 
-1

Bạn có thể cố gắng quảng bá proxy ứng dụng khách của mình bằng phương pháp được đề cập here. Một khi bạn có một thể hiện của proxy khách hàng WCF của bạn, nó sẽ có một tài sản ClientCreditials mà bạn có thể cư trú khi cần thiết. Hy vọng điều này sẽ hữu ích.