尝试从ASP.NET调用外部Web服务将返回401-DefaultCredentials空

尝试从ASP.NET调用外部Web服务将返回401-DefaultCredentials空,asp.net,web-services,authentication,asmx,Asp.net,Web Services,Authentication,Asmx,失败: 作品: //Note: webserviceProxy inherits from SoapHttpClientProtocol //App Pool is running as a user with permissions to call the external webservice var webserviceProxy = new webServiceProxy(); webserviceProxy.PreAuthenticate = true; webservicePro

失败:

作品:

//Note: webserviceProxy inherits from SoapHttpClientProtocol
//App Pool is running as a user with permissions to call the external webservice

var webserviceProxy = new webServiceProxy();

webserviceProxy.PreAuthenticate = true;
webserviceProxy.UseDefaultCredentials = true;

var returnVal = webServiceProxy.DoSomething();  //Fails with 401, webserviceProxy.Credendials shows an empty username, pass, and domain
如何使用ASP.NET应用程序池的标识进行外部webservice调用?似乎没有办法将
System.Security.Principal.WindowsIdentity.GetCurrent()
转换为可用于此调用的内容


谢谢

也许这篇Microsoft支持文章可以帮助您解决这个问题:

底线是,当计算机名和网站FQDN不匹配时,Windows将保护自己

另见:

//This code works, but I want to assign the current app pool's credentials to the webservice proxy's credentials.  UsingDefaultCredentials doesn't work.  The username, passoword, and domain are always null.

var webserviceProxy = new webServiceProxy();

webserviceProxy.PreAuthenticate = true;
webserviceProxy.Credentials = new NetworkCredential("user", "pass", "domain");

var returnVal = webServiceProxy.DoSomething();  //Fails with 401