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 - 在 IE7 中未经授权,仅使用 Windows 身份验证。