我在自定义的视觉网络部分中有一个方案,我需要检查登录用户是SharePoint组的成员(SharePoint组或用户存储在SharePoint列表中)。实际上,如果列表中存在登录的用户,将在我的自定义网络部分中为他提供编辑访问。
由于我创建了一个组名称" sharepoint_owners",其中组设置为'谁可以将此组的成员身份查看为"组成员",因此网站将错误作为"访问被拒绝",因为登录用户登录未具有权限查看。我的代码执行此操作时会遇到错误spgroup ogroup = owebsite.sitegroups [strgroup];///strgroup是一个组名称foreach(ogroup.users中的spuser ueser){}
我尝试打开页面时会引发此错误。
。任何人都可以建议我继续吗?有没有办法通过编程解决此问题,而无需实际授予每个组"每个人"的视图权限?我以为RunwithelevedPrivileges完成了我的工作,但没有运气!
请帮助
尝试以下:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
string siteURL = SPContext.Current.Site.Url;
using (SPSite safeSite = new SPSite(siteURL))
{
using (SPWeb safeWeb = safeSite.OpenWeb())
{
SPGroup group = safeWeb.Groups["SharePoint_Owners"];
bool isMember = safeWeb.IsCurrentUserMemberOfGroup(group.ID);
}
}
});