使用SharePoint中的当前用户凭据调用Web服务

时间:2011-08-25 00:30:06

标签: .net web-services iis credentials impersonation

当我从我的vs2010客户端运行这个C#代码时,它可以像我一样进行身份验证。

但是,如果我将代码部署到Web服务器上的sharePoint页面,我会从Web服务收到身份验证错误。

我理解这个双跳问题,我需要冒充。也许代码将Web服务称为SharePoint服务用户。

除了硬编码凭证之外,还有什么简单的方法吗?

Uri uri = new Uri("http://tempuri.org/"); 
ICredentials credentials = CredentialCache.DefaultCredentials; 
NetworkCredential credential = credentials.GetCredential(uri, "Basic"); 
Service service = new Service("https://xxx/Exchange.asmx", credential);

有人建议使用带有模仿的windowsidentity类,但不知道如何将其插入。

感谢。

1 个答案:

答案 0 :(得分:0)

如果您信任使用应用程序池标识与远程Web服务进行交互,那么您可以使用此技术:

http://mindsharpblogs.com/todd/archive/2005/05/03/467.html