2010-04-29 27 views
4

失敗:試圖從ASP.NET調用外部Web服務返回一個401 - 的DefaultCredentials空

//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 

作品:

//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 

我怎樣才能使用ASP的identtity外部Web服務調用.NET的應用程序池?似乎沒有辦法將System.Security.Principal.WindowsIdentity.GetCurrent()轉換爲我可以用於此調用的東西。

謝謝!

回答