我对sharepoint应用程序开发还比较陌生。
试图创建一个现场,高信任提供商托管应用程序与应用程序+用户策略。我已经按照下面的文档创建了一个演示。
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)当我在dev tools中检查我的请求时,它提供了下面的表单数据。
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访问控制服务不可用。
我相信高信任度的应用程序不应该寻找Azure ACS。此错误是由于某些不正确的配置造成的吗?( b) SPAppToken在这里为空。对于hig信任应用程序,它总是空的吗?
2)假设我与用户A登录到sharepoint,并试图启动sharepoint应用程序。在应用程序代码中,我想获得登录用户的身份(即A)。从下面的代码中,我发现Request.LogonUserIdentity给出了用户A的身份,但我们如何确保该请求仅来自sharepoint。我可以复制相同的应用程序URL和粘贴在浏览器窗口和登录窗口凭据,并获得相同的结果。因此,问题是如何验证它的合法请求是否仅来自sharepoint,而没有人伪造请求。ALos,当我在dev tools中检查请求时,它在请求头中传递授权密钥。这有什么用?
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,那么在这种情况下有什么方法可以获得用户身份呢?
任何帮助都将不胜感激。
谢谢
https://stackoverflow.com/questions/28443382
复制相似问题