使用OAuth2S2SClient时,令牌请求在TokenHelper.GetAccessToken()时失败

时间:2014-10-06 14:51:58

标签: sharepoint-online azure-cloud-services sharepoint-apps

我创建了一个SharePoint提供商托管应用程序,当我发布并添加到网站时它运行正常。我创建了一个CName并使用appregnew页面注册,部署了云服务项目,安装并添加了应用程序。我在我有身份验证的页面上收到相同的错误[SharePointContextFilter]。没有身份验证的页面[SharePointContextFilter]工作正常。

以下是详细错误:

发生错误。令牌请求失败。 Inner:System.Net.WebException:远程服务器返回错误:(400)错误请求。 at System.Net.HttpWebRequest.GetResponse()at Microsoft.IdentityModel.S2S.Protocols.OAuth2.OAuth2WebRequest.GetResponse()at Microsoft.IdentityModel.S2S.Protocols.OAuth2.OAuth2S2SClient.Issue(String securityTokenServiceUrl,OAuth2AccessTokenRequest oauth2Request)Stacktace:at PasswordResetAppWeb.SharePointAcsContext.RenewAccessTokenIfNeeded(元组{{1}上的PasswordResetAppWeb.TokenHelper.GetAccessToken(String refreshToken,String targetPrincipalName,String targetHost,String targetRealm)中的Microsoft.IdentityModel.S2S.Protocols.OAuth2.OAuth2S2SClient.Issue(String securityTokenServiceUrl,OAuth2AccessTokenRequest oauth2Request) PasswordResetAppWeb.Share控件上的PasswordResetAppWeb.SharePointAcsContext.GetAccessTokenString(元组2& accessToken, Func 1 tokenRenewalHandler)中的1个tokenRenewalHandler)。密码存储:Microsoft.IdentityModel.Extensions

知道我做错了吗?

我使用Cname URL来使用appregnew.aspx注册应用程序,并在打包应用程序时也使用了Cname URL。我在这里做错了什么?

任何建议都会很棒..提前致谢!!

1 个答案:

答案 0 :(得分:2)

我明白了。我没有将客户端密码正确复制到web.config。它有一个空间,导致了这个问题。

因此,向云服务中托管的sharepoint应用添加别名是正确的步骤:

使用新的CName注册应用程序,在webconfig中更改clientID,Client Secret并部署,使用Cname和clientID打包应用程序并安装并添加应用程序。 确保正确复制您的客户端ID和客户端密码。