SPAppToken(上下文标记)为null

时间:2013-09-12 14:38:00

标签: sharepoint azure token sharepoint-2013 sharepoint-apps

我有一个Sharepoint 2013内部部署环境,我正在使用Visual Studio开发一个提供者托管应用程序。

Visual Studio项目有一个应用程序项目,其中包含一个转到Web项目的自定义功能区按钮。 Web项目托管在Windows Azure上,在这里我得到上下文令牌为空或空字符串的错误。

使用以下代码完成令牌:

var contextTokenString = TokenHelper.GetContextTokenFromRequest(Request);
SharePointContextToken contextToken =
     TokenHelper.ReadAndValidateContextToken
                             (contextTokenString, Request.Url.Authority);

当我看到传递给Azure上托管的网站的内容时,我注意到SPAppToken为空。使用ULS查看器时,我收到错误“ Azure Access Control服务不可用

我已经检查过该应用是否已注册(使用appregnew.aspx)且该ID以及appManifest.xmlweb.config文件中的ID相同。

如何获取上下文令牌?我是否需要在Azure中执行其他操作才能使其正常工作?

2 个答案:

答案 0 :(得分:0)

评论中的链接帮助了我。我在这里发布答案,所以我们不需要依赖于网址。

当您的应用的启动网址与为您应用的client_id注册的“应用网域”不匹配时,您会收到“EndpointAuthorityDoesNotMatch”消息。
对我来说,这意味着我需要通过O365网站上的_layouts / 15 / appregnew.aspx页面与我们的开发服务器分别重新注册我们的测试服务器的应用程序。以下是有关注册客户ID的更多信息的链接:http://msdn.microsoft.com/en-us/library/jj687469.aspx

答案 1 :(得分:0)

消息' Azure Access Control服务不可用' 表示SharePoint无法构建SPAppToken,因为它无法与ACS通信(Azure Access Control )为了做到这一点。这可能是由于各种原因(例如网络连接问题)。

您还可以查看此博客:CJG: The Azure Access Control service is unavailable.