5

我有一个 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 访问控制服务不可用

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

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

4

2 回答 2

1

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

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

于 2014-11-28T00:59:34.123 回答
0

消息“Azure 访问控制服务不可用”表示 SharePoint 无法构建该服务,SPAppToken因为它无法与 ACS(Azure 访问控制)对话以执行此操作。这可能有多种原因(例如网络连接问题)。

您还可以查看此博客:CJG:Azure 访问控制服务不可用。

于 2015-03-17T12:46:56.620 回答