401 在 SharePoint 2007 中未经授权

Posted

技术标签:

【中文标题】401 在 SharePoint 2007 中未经授权【英文标题】:401 UNAUTHORIZED in SharePoint 2007 【发布时间】:2011-01-15 07:45:55 【问题描述】:

我创建了一个从文档库收集信息的 Web 部件。它在“admin”网络应用程序下运行良好(我们有两个网络应用程序:非匿名用户的管理站点;匿名用户的 www 站点。这两个站点共享相同的内容)。

当我打开 www 站点时,当它没有引用文档库时,它会显示空的 Web 部件。但是,当它链接到文档库时,它会显示 401 UNAUTHORIZED。 CQWP 可以从 admin 和 www 站点成功查询相同的文档库。

有什么帮助吗?

谢谢。

【问题讨论】:

【参考方案1】:

解决了。

似乎从 SPSite 对象 siteCollection 的属性 AllWebs 枚举的 SPWeb 对象对每个 Web 对象执行安全检查。

如果用户没有对特定 Web 对象的权限,则它会在上层引发错误,从而导致 401 页面。

使用提升的权限解决了这个问题。

SPSecurity.RunWithElevatedPrivileges(delegate()

    foreach (SPWeb s in siteCollection.AllWebs)
    ...
);

MSDN 文章: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.runwithelevatedprivileges.aspx

【讨论】:

【参考方案2】:

小心使用提升的权限运行。 SharePoint 知道谁在发出请求,并且可以根据该用户的权限调整结果。以提升的权限运行可能会返回不适合该人的结果。

【讨论】:

以上是关于401 在 SharePoint 2007 中未经授权的主要内容,如果未能解决你的问题,请参考以下文章

使用 EWS API 发送电子邮件方法获取 401 未经授权

状态:401 在邮递员中未经授权

401(未经授权)ReactJS

401 - 在 IE7 中未经授权,仅使用 Windows 身份验证。

Spring Security 测试返回 401(未经授权)

在 Laravel 护照、vueJS 和 Axios 中获得未经授权的 401