SPAppToken(上下文标记)为null

Mar*_*ijn 5 sharepoint token azure 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);
Run Code Online (Sandbox Code Playgroud)

当我看到传递给Azure上托管的站点的内容时,我注意到它SPAppToken是null.使用ULS查看器时,我收到错误" Azure Access Control服务不可用 "

我已经检查了应用程序是否已注册(使用appregnew.aspx),并且该文件appManifest.xmlweb.config文件中的ID相同.

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

mar*_*ark 1

评论中的链接对我有帮助。我在这里发布答案,这样我们就不需要依赖一个网址。

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