0

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

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

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

4

1 回答 1

0

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

    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;
于 2010-02-25T12:14:07.843 回答