2017-08-31 57 views
0

我正在开发一个调用Dynamics Nav的多个Web服务方法的项目。它使用SOAP请求并发送响应xml来完成调用。C#动态导航Web服务无法获得授权

我无法验证到Web服务,因为我得到如下回应:

  • 响应{的StatusCode:401,ReasonPhrase: '未授权',版本:1.1,内容:System.Net .Http.StreamContent,头: { 日期:星期四,2017年8月31日八时12分15秒GMT 服务器:HTTPAPI/2.0 WWW身份验证:协商 的Content-Length:0 }} System.Net。 Http.HttpResponseMessage

我的凭据代码示例是:

var credentials = Encoding.ASCII.GetBytes(usuarioText + ":" + passText); 
client.DefaultRequestHeaders.Authorization = new 
    AuthenticationHeaderValue("Windows", Convert.ToBase64String(credentials)); 

我需要Windows身份验证调用导航服务,我觉得我做错事发的证书......

回答

1

如果服务层配置为使用Windows身份验证,有两种方式可以对Dynamics NAV Web Service进行身份验证。

使用您当前的凭据:

// Creates instance of service and sets credentials. 
Customer_Service service = new Customer_Service(); 
service.UseDefaultCredentials = true; 

或设置凭据(例如,从配置):

// Creates instance of service and sets credentials. 
Customer_Service service = new Customer_Service(); 
service.UseDefaultCredentials = false; 
service.Credentials = new NetworkCredential("username", "password", "domain"); 

更多在MSDN:Walkthrough: Registering and Using a Page Web Service (SOAP)