Sharepoint ODATA API&如何使用服务帐户进行身份验证

时间:2012-03-27 19:40:11

标签: sharepoint authentication odata

我正在调用SharePoint 2010 REST / ODATA api,默认情况下,数据上下文使用DefaultCredentials,它实际上是我的Asp.Net应用程序的登录用户。如果我没有将DefaultCredentials附加到上下文中,那么我只是获得401 Unauthorized。

我想知道如何在使用应用程序池凭据时调用SharePoint API?我正在尝试遵循可信系统安全方法。否则,SharePoint站点需要授予ODATA访问权限,并且基本上每个人都需要写入某些列表(gak!)。

例如,使用SQL连接,我只需设置“Integrated Security = true”即可使用应用程序池凭据。

1 个答案:

答案 0 :(得分:0)

我是否认为您在其他上运行ASP.NET应用程序而不是SharePoint服务器? (在服务器场外部;只是具有IIS和ASP.NET的计算机。)如果ASP.NET应用程序池在与SharePoint Web应用程序相同的用户下运行,则可以临时模拟处理程序的代码或页面到应用程序池用户并使用default network credentials

using (HostingEnvironment.Impersonate()) {
    ICredentials credentials = CredentialCache.DefaultNetworkCredentials;
    // ... use the credentials
}

如果您从某些配置知道应用程序池用户的凭据(名称和密码),则可以直接使用它们发出HTTP请求:

ICredentials credentials = new NetworkCredential("user_name", "password");
// ... use the credentials

---费达

相关问题