1

我的自定义可视化 Web 部件中有一个场景,我需要检查登录用户是否是共享点组的成员(共享点组或用户存储在共享点列表中)。实际上,如果列表中存在登录用户,他将在我的自定义 Web 部件中获得编辑访问权限。

由于我创建了一个组名“SharePoint_Owners”,组设置为“谁可以查看该组的成员资格”到“组成员”,所以站点抛出错误,因为登录用户没有查看权限。我的代码执行时出错,SPGroup oGroup = oWebsite.SiteGroups[strgroup];///strgroup 是一个组名 foreach (SPUser oUser in oGroup.Users) { }

当我尝试打开包含我的 webpart 的页面时,站点会引发此错误。

有人可以建议我如何进行吗?有没有办法以编程方式解决这个问题,而无需为每个组实际授予“每个人”的查看权限?我认为 RunWithElevatedPrivileges 完成了我的工作,但没有运气!

请帮忙

4

1 回答 1

0

尝试这个:

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);                       
                    }
                }
            });
于 2012-10-17T15:16:32.823 回答