Sharepoint 开发用于匿名访问的自定义可视web部件时需要其他代码?
我有一个简单的自定义web部件,其中有三个下拉列表,可以从三个不同的列表中读取。当用户尝试访问此页面时,系统会提示用户输入密码,如果用户未输入任何凭据,则会出现401错误 我在管理中心和网站本身都启用了匿名访问,用户可以浏览到网站并查看它,而无需提示输入密码。我已经确保匿名用户可以“查看”问题列表,但他们仍然无法查看任何带有自定义web部件的页面 那么这是SharePoint设置还是我必须在我的web部件项目中添加一些内容 提前谢谢 编辑: 我在页面加载中调用了这个方法,但仍然得到相同的错误Sharepoint 开发用于匿名访问的自定义可视web部件时需要其他代码?,sharepoint,sharepoint-2010,Sharepoint,Sharepoint 2010,我有一个简单的自定义web部件,其中有三个下拉列表,可以从三个不同的列表中读取。当用户尝试访问此页面时,系统会提示用户输入密码,如果用户未输入任何凭据,则会出现401错误 我在管理中心和网站本身都启用了匿名访问,用户可以浏览到网站并查看它,而无需提示输入密码。我已经确保匿名用户可以“查看”问题列表,但他们仍然无法查看任何带有自定义web部件的页面 那么这是SharePoint设置还是我必须在我的web部件项目中添加一些内容 提前谢谢 编辑: 我在页面加载中调用了这个方法,但仍然得到相同的错误 p
private void LoadImageGallery()
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPSite oSiteCollection = SPContext.Current.Site;
SPWebCollection collWebsites = oSiteCollection.AllWebs;
DataTable dt = new DataTable();
for (int i = 0; i < collWebsites.Count; i++)
{
using (SPWeb oWebsite = collWebsites[i])
{
if (oWebsite.Title == "People")
{
SPList peopleList = oWebsite.Lists["Pages"];
if (peopleList != null)
{
SPListItemCollection collListItems = peopleList.Items;
dt = collListItems.GetDataTable();
// Include Surname to omit default/search page
dt = collListItems.GetDataTable();
rptImageGallery.DataSource = dt;
rptImageGallery.DataBind();
}
}
}
}
});
}
上面是高架的
我将system\sharepoint设置为对整个网站具有完全控制权,自定义页面需要满足两个要求,以便匿名用户可以访问它:
true
自定义页面需要满足两个要求,以便匿名用户可以访问它:
true
对于匿名访问,您必须修改访问列表的代码以绑定下拉列表,如下所示。在SPSecurity.RunWithElevatedPrivileges委托方法中添加代码
SPSecurity.RunWithElevatedPrivileges(delegate() {
using (SPSite site = new SPSite(web.Site.ID))
{
//ADD YOUR WEB PART Code HERE
}
});
重要提示:您必须在此委托中创建SharePoint对象,否则代码将无法使用管理员访问权限运行。对于匿名访问,您必须修改访问列表的代码以绑定下拉列表,如下所示。在SPSecurity.RunWithElevatedPrivileges委托方法中添加代码
SPSecurity.RunWithElevatedPrivileges(delegate() {
using (SPSite site = new SPSite(web.Site.ID))
{
//ADD YOUR WEB PART Code HERE
}
});
重要提示:您必须在此委托中创建SharePoint对象,否则代码将无法使用管理员权限运行。自定义页面布局是。如果我在收到提示时输入凭据,但现在输入401,则一切正常。所有页面、图像等均已发布自定义页面布局是。如果我在收到提示时输入凭据,但现在输入401,则一切正常。所有页面、图像等均已发布