2013-04-13 128 views
0

未经授权例外,我收到“未授权”在主机端的供应商提供托管应用程序异常的SharePoint 2013年的SharePoint 2013对供应商提供托管应用

Uri hostWeb = new Uri(Request.QueryString["SPHostUrl"]); 
using (var clientContext = TokenHelper.GetS2SClientContextWithWindowsIdentity(hostWeb, Request.LogonUserIdentity)) 
{ 
    clientContext.Load(clientContext.Web, web => web.Title); 
    clientContext.ExecuteQuery(); 
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
} 

证书已安装,Anonymos访问被禁用。我无法理解这个问题的原因。

回答

1

看起来像这是高信托应用程序。如果您已用尽http://msdn.microsoft.com/en-us/library/fp179932.aspx的提示,则会出现一个不合格的SPTrustedSecurityTokenIssuer。你可以使用下面的PS找出它们全部。理想情况下,它应该是IssuerId @ Realm。如果有一个不是,那就删除它。但请记住不要删除第一个用于工作流程的文件

Get-SPTrustedSecurityTokenIssuer |选择名称,RegisteredIssuerName

0

首先,您必须在'Request.LogonUserIdentity'中检查用户。实际上,这发生在用户无法访问IIS中的网站时发生。 所以要在'Request.LogonUserIdentity'中设置正确的用户请遵循以下步骤:

打开你的IIS->认证 - >匿名认证 - >编辑 - >特定用户[你得到的用户' Request.LogonUserIdentity']。 - > iisreset

现在用户有权访问您的IIS网站。

2

我在遇到完全相同的问题之前......我通过实施OAuth解决了问题,并使用“写入”权限重定向到应用程序主页面。 Response.Redirect(TokenHelper.GetAuthorizationUrl(“mysharepoint.com”,“Web.Write”,“myapp.com/default.aspx”));

基本上,它所做的就是使用您的SharePoint站点对登录用户进行身份验证,一旦通过身份验证,它就会将其重定向到您的应用程序站点。

以下是如何实现OAuth:http://msdn.microsoft.com/en-us/library/office/jj687470(v=office.15).aspx

相关问题