具有"App + User"策略的高信任 S2S 提供程序托管应用



我对sharepoint应用程序开发相对陌生。

正在尝试使用app+用户策略创建本地、高信任提供商托管的应用程序。我已经按照下面的文档创建了一个演示。

https://msdn.microsoft.com/library/office/fp179901(v=办公室.15)http://blogs.msdn.com/b/russmax/archive/2014/06/23/part-1-intro-to-provider-hosted-apps-setup-the-infrastructure.aspx

我面临的问题很少,如果有人能帮忙的话,我有一些问题需要澄清。

1) 当我在开发工具中检查我的请求时,它会给我以下表单数据。

SPAppToken:

SPSiteUrl:

SPSiteTitle:主页

SPSiteLogoUrl:

SPSiteLanguage:en-US

SPSiteCulture:en-US

SPRedirectMessage:EndpointAuthorityMatches

SPErrorCorrelationId:f069e89c-a0cd-20ce-a1c0-7db95db0334b

现在,当我检查具有上述相关id的日志时,我发现以下错误。

--获取应用i的令牌时出错:0i.t|ms.sp.ext|ab8ff461-bc75-4516-b475-b666ac47eec0@802f23e1-6e11-45d1-909c-07a7b0ab0ce2,异常:Microsoft.SharePoint.SPE异常:Azure访问控制服务不可用
--从appredirect.aspx请求站点92bfe5c4-7255-4b09-a89a-07e0e2b03622的应用令牌,但中存在错误生成它。当我们不需要令牌时,或者当应用程序主体设置不正确。--正在获取异常Microsoft.SharePoint.SPException:Azure访问控制服务为不可用

a) 我相信在高度信任的应用程序中,它不应该寻找Azure ACS。这个错误是因为某些不正确的配置吗?b) 此处SPAppToken为空。在高度信任应用程序的情况下,它总是空的吗?

2) 假设我已与用户A登录到sharepoint,并试图启动sharepoint应用程序。在应用程序代码中,我想获得登录用户的身份(即A)。从下面的代码中,我发现Request.LogoUserIdentity给了我用户A的身份。但我们如何才能确保该请求仅来自sharepoint。我可以复制相同的应用程序URL并粘贴到浏览器窗口中,然后使用窗口凭据登录,得到相同的结果。所以问题是,我如何验证它的合法请求是否只来自sharepoint,并且没有人伪造请求。ALos,当我在开发工具中检查请求时,它会在请求头中传递Authorization密钥。这有什么用?

using (var clientContext = TokenHelper.GetS2SClientContextWithWindowsIdentity(hostWeb, Request.LogonUserIdentity))             {                    clientContext.Load(clientContext.Web, web => web.Title);                clientContext.ExecuteQuery();                   Response.Write(clientContext.Web.Title);             }

3) 此外,如果我的应用程序不支持windows身份验证,只支持FBA,会发生什么?在这种情况下,有什么方法可以获得用户身份吗?

任何帮助都将不胜感激。

感谢

对于问题#1:在我看来,本节中的步骤#9(配置身份验证设置)(来自您引用的第一篇MSDN文章)被遗漏了,即选择了"ACS控制服务"而不是"使用证书"选项。

对于问题#2:TokenHelper.cs中有一些助手方法来验证HttpRequest中的AccessToken,该方法标识请求的有效性。

相关内容

  • 没有找到相关文章

最新更新