首页 > 解决方案 > SharePoint 客户端 ID 和密钥续订不起作用

问题描述

我有一个要接管的控制台应用程序。它访问一个 SharePoint 站点并已成功运行了一段时间。前几天它开始失败,出现以下错误:

Microsoft.IdentityModel.SecurityTokenService.RequestFailedException:令牌请求失败。---> System.Net.WebException:远程服务器返回错误:(401)未经授权。在 System.Net.HttpWebRequest.GetResponse() 在 Microsoft.IdentityModel.S2S.Protocols.OAuth2.OAuth2WebRequest.GetResponse() 在 Microsoft.IdentityModel.S2S.Protocols.OAuth2.OAuth2S2SClient.Issue(String securityTokenServiceUrl, OAuth2AccessTokenRequest oauth2Request) ---内部异常堆栈跟踪结束 ---

我很清楚现在是更新此应用程序的客户端 ID 和客户端密码的时候了。我去了 SharePoint 并在正确的站点中使用 AppRegNew.aspx 来生成新的客户端 ID 和客户端密码。

然后我转到 AppInv.aspx 页面并使用新的客户端 ID 使用相同的应用程序域和重定向 URL 以及添加此权限请求 XML:

<AppPermissionRequests AllowAppOnlyPolicy="true">
<AppPermissionRequest Scope="http://sharepoint/content/sitecollection" Right="FullControl" />
</AppPermissionRequests>

并信任新应用程序,使其完全控制网站集。单击“信任它”让我立即返回我认为正确的“设置”页面。

我在应用程序的 App.config 中更新了 Client ID 和 Secret。我不再看到令牌请求失败,但我现在收到 403 错误。

System.Net.WebException:远程服务器返回错误:(403)禁止。在 SharepointFilesDownload.Program。

在我的机器上调试应用程序,我可以重新创建错误。我似乎得到了一个有效的访问令牌。对 url 的调用将 Authorization 标头添加到请求中,并在 GetResponse() 调用中失败。

我错过了 SharePoint 设置中的某些内容吗?

谢谢。

标签: c#sharepointoauth-2.0

解决方案


推荐阅读