尝试从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