【问题标题】:Sharepoint ODATA API & how to authenticate using service accountSharepoint ODATA API 以及如何使用服务帐户进行身份验证
【发布时间】:2012-03-30 02:02:41
【问题描述】:

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

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

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

【问题讨论】:

    标签: sharepoint authentication odata


    【解决方案1】:

    您在其他而不是 SharePoint 服务器上运行 ASP.NET 应用程序是对的吗? (场外;只是一台装有 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
    

    --- 费达

    【讨论】:

      猜你喜欢
      • 2013-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-20
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      相关资源
      最近更新 更多