2015-02-10 41 views
1

我比较新的SharePoint应用程序开发。高信托S2S提供商托管的应用程序与“应用程序+用户”政策

试图创建一个驻地,高信托提供商托管与应用程序+用户策略的应用程序。我已经在下面的文档中创建了一个演示。

https://msdn.microsoft.com/library/office/fp179901(v=office.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.SPException:Azure访问控制 服务不可用。
- 应用程序令牌从appredirect.aspx请求站点:92bfe5c4-7255-4b09-a89a-07e0e2b03622,但在生成它时出现 错误。这可能是我们不需要令牌或应用程序主体未正确设置时的情况。 - 针对异常获取错误消息Microsoft.SharePoint.SPException:Azure访问控制服务的不可用为 。

a)我相信高信任的应用程序它不应该寻找Azure ACS。 由于某些配置不正确而导致此错误? b)SPAppToken在这里为null。在高信任应用的情况下它是否为空?

2)说我登录到用户A的共享点,并试图启动SharePoint应用程序。 在应用程序代码中,我想获取登录用户的身份(即A)。从下面的代码我发现Request.LogonUserIdentity给了我用户A的身份。但是我们怎么能确定这个请求只是来自于共享点。我可以复制相同的应用程序URL并粘贴到浏览器窗口并使用窗口凭证登录并获得相同的结果。所以问题是如何验证其合法请求是否仅来自共享点,并且没有人伪造请求。 ALos,当我检查开发工具中的请求时,它在请求头中传递授权密钥。这是什么用途?

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

问题#1:在我看来,该步骤#9 this section(配置身份验证设置)(从您刚才提到的第一个MSDN文章)被错过了,即,“ACS控制服务”被选中而不是“使用证书”选项。

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

相关问题