SharePoint 2010访问被拒绝-登录用户不使用';我没有权限查看此sharepoint组的mebership

SharePoint 2010访问被拒绝-登录用户不使用';我没有权限查看此sharepoint组的mebership,sharepoint,sharepoint-2010,web-parts,access-denied,Sharepoint,Sharepoint 2010,Web Parts,Access Denied,我的自定义可视web部件中有一个场景,需要检查登录用户是否是sharepoint组的成员(sharepoint组或用户存储在sharepoint列表中)。实际上,如果列表中存在登录用户,他将被授予“我的自定义web部件”中的编辑权限 由于我已将组设置为“谁可以查看此组的成员资格”的组名“SharePoint_Owners”创建为“组成员”,因此由于登录用户没有查看权限,网站将抛出“访问被拒绝”错误。我的代码执行此操作时出错, SPGroup oGroup=oWebsite.SiteGroups[

我的自定义可视web部件中有一个场景,需要检查登录用户是否是sharepoint组的成员(sharepoint组或用户存储在sharepoint列表中)。实际上,如果列表中存在登录用户,他将被授予“我的自定义web部件”中的编辑权限

由于我已将组设置为“谁可以查看此组的成员资格”的组名“SharePoint_Owners”创建为“组成员”,因此由于登录用户没有查看权限,网站将抛出“访问被拒绝”错误。我的代码执行此操作时出错, SPGroup oGroup=oWebsite.SiteGroups[strgroup]///strgroup是一个组名 foreach(oGroup.Users中的SPUser-oUser){}

当我试图打开包含我的Web部件的页面时,该站点抛出此错误

有人能建议我怎么做吗?有没有一种方法可以通过编程来解决这个问题,而无需为每个组的“所有人”授予查看权限?? 我以为RunWithElevatedPrivileges可以帮我完成工作,但运气不好

请帮助

尝试以下操作:

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);                       
                    }
                }
            });

您能用try/catch块包装代码并发布准确的错误消息吗?