重置SharePoint中匿名用户的页面库权限

时间:2010-02-24 13:18:30

标签: sharepoint moss permissions anonymous page-library

在网站集级别中,有一个页面库,它与整个站点一起创建。直到最近我才添加新的内容类型,使用解决方案文件修改了一些页面布局和母版页,我没有长时间触摸它。使用为匿名用户配置的站点访问主页时,它在网页上出现“401 UNAUTHORIZED”错误失败。我注意到URL是/_layouts/AccessDenied.aspx?Source = ...& Type = list& name = {...}然后我将此字符串复制到经过身份验证的用户的网站,它显示为“错误:访问被拒绝”。我还检查了名称= {...}的指南。这是页面库列表ID。

似乎未正确设置页面库权限。但是,子站点的其他页面库在匿名用户下运行良好,使用相同的新内容类型,母版页和页面布局。他们的权限在设置页面上是相同的(所有都从父级继承)并且都启用了“允许匿名”。

我还尝试在该页面库中创建包含其他页面布局的页面,清理内容类型,但都没有帮助。

1 个答案:

答案 0 :(得分:0)

这不是页面库的权限问题,而是与我修改的代码有关。 SPContext.Current.Site.RootWeb是匿名用户的引用。该用户没有访问根文件夹的权限。我假设SPContext.Current.Site.RootWeb.RootFolder.WelcomePage可以使用提升的权限,但经过一些阅读后,我意识到它并没有像我想象的那样提升权限。 Here是一个解释。

    bool rtn = false;               
    SPWeb rootWeb = SPContext.Current.Site.RootWeb;
    SPSecurity.RunWithElevatedPrivileges(delegate()
    {
        using (SPSite site = new SPSite(rootWeb.Site.Url))
        {
            using (SPWeb web = site.OpenWeb())
            {
                rtn = web.Url + "/" + web.RootFolder.WelcomePage
                      == this.Page.Request.Url.AbsoluteUri;
            }
        }
    });
    return rtn;