Thursday, November 17, 2011

Programatically Check if currently logged in User belongs to Given Group


public virtual bool IsCurrentUserIsGroupMember(string groupName)
        {          
            bool isGroupMember = false;          
            SPWeb web = SPContext.Current.Web;
            string currentLoggeInUser = web.CurrentUser.LoginName;
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite site = new SPSite(web.Site.ID))
                {
                    using (SPWeb currentWeb = site.AllWebs[web.ServerRelativeUrl])
                    {
                        currentWeb.AllowUnsafeUpdates = true;
                        foreach (SPGroup group in currentWeb.SiteGroups)
                        {
                            if (group.Name == groupName)
                            {
                                foreach (SPUser user in group.Users)
                                {
                                    if (user.LoginName.ToLower() == currentLoggeInUser.ToLower())
                                    {
                                        isGroupMember = true;
                                    }
                                }
                            }
                        }
                    }
                }
            });        
           
            return isGroupMember;
        }

1 comment:

Anonymous said...

SPGroup.ContainsCurrentUser can also be used.