SPGroup 和SPUser的常用操作

来源:互联网 发布:交大慧谷 seo 编辑:程序博客网 时间:2024/05/22 08:20
复制代码
    private bool RemoveUserFromGroup(string sGoupName, string sUserLoginName)    {        bool res = false;        try        {            SPWeb web = SPContext.Current.Web;            SPGroup oGroup = web.SiteGroups[sGoupName];            SPUser oUser = GetSPUser(sUserLoginName);            if (oUser != null)            {                web.AllowUnsafeUpdates = true;                oGroup.RemoveUser(oUser);                oGroup.Update();                res = true;                web.AllowUnsafeUpdates = false;            }        }        catch (Exception ex)        {            string sMessage = ex.Message;            //throw;        }        return res;    }    private bool RemoveUserFromGroup(SPGroup oGroup, SPUser oUser)    {        bool res = false;        try        {            SPWeb web = SPContext.Current.Web;            if (oUser != null&&oGroup!=null)            {                web.AllowUnsafeUpdates = true;                oGroup.RemoveUser(oUser);                oGroup.Update();                res = true;                web.AllowUnsafeUpdates = false;            }        }        catch (Exception ex)        {            string sMessage = ex.Message;            //throw;        }        return res;    }    private SPUser GetSPUser(string sLoginName)    {        SPUser oUser = null;        try        {            if (!string.IsNullOrEmpty(sLoginName))            {                oUser = SPContext.Current.Web.AllUsers[sLoginName];            }        }        catch (Exception ex)        {            string sMessage = ex.Message;        }        return oUser;    }    private void RemoveUser(string sLoginName)    {        SPUser oUser = GetSPUser(sLoginName);        if (oUser!=null)        {            SPGroupCollection groups = oUser.Groups;            if (groups!=null&&groups.Count>0)            {                foreach (SPGroup g in groups)                {                    RemoveUserFromGroup(g, oUser);                }            }        }    }    private bool AddUserIntoGroup(string sGroupName, string sUserLoginName)    {        bool res = false;        try        {            SPWeb web = SPContext.Current.Web;            web.AllowUnsafeUpdates = true;            SPGroup oGroup = web.SiteGroups[sGroupName];            SPUser oUser = GetSPUser(sUserLoginName);            if (oUser != null)            {                oGroup.AddUser(oUser);                oGroup.Update();                res = true;            }            web.AllowUnsafeUpdates = false;        }        catch (Exception ex)        {            string sMessage = ex.Message;            //throw;        }        return res;    }    private string FilterSPUserString(string str)    {        if (string.IsNullOrEmpty(str))        {            return str;        }        if (str.IndexOf(";#") > 0)        {            str = str.Substring(str.LastIndexOf(";#") + 2);        }        return str;    }    private bool CreateSiteGroup(string sGroupName, string sGroupDescription)    {        bool res = false;        using (SPWeb oWebsiteRoot = SPContext.Current.Site.RootWeb)        {            oWebsiteRoot.AllowUnsafeUpdates = true;            SPGroupCollection collGroups = oWebsiteRoot.SiteGroups;            string sLoginName = SPContext.Current.Web.CurrentUser.LoginName;            SPUser oUser = oWebsiteRoot.Users[sLoginName];            SPMember oMember = oWebsiteRoot.Users[sLoginName];            collGroups.Add("Group_Name", oMember, oUser, "Description");            oWebsiteRoot.AllowUnsafeUpdates = false;            res = true;        }        return res;    }    /// <summary>    /// 给组赋权限    /// </summary>    /// <param name="sGroupName"></param>    /// <param name="sPermissionLever"></param>    /// <returns></returns>    private bool SetGroupPermission(string sGroupName, string sPermissionLever)    {        bool res = false;        using (SPWeb oWebsiteRoot = SPContext.Current.Site.RootWeb)        {            oWebsiteRoot.AllowUnsafeUpdates = true;            SPRoleAssignment roleAssignment = new SPRoleAssignment(oWebsiteRoot.SiteGroups[sGroupName]);            roleAssignment.RoleDefinitionBindings.Add(oWebsiteRoot.RoleDefinitions[sPermissionLever]);            oWebsiteRoot.Update();            oWebsiteRoot.AllowUnsafeUpdates = false;            res = true;        }        return res;    }    private void DeleteSiteGroup(SPWeb web, string groupName)    {        web.AllowUnsafeUpdates = true;        SPGroupCollection groups = web.SiteGroups;        groups.Remove(groupName);        web.Update();        web.AllowUnsafeUpdates = false;    }
复制代码

 判断当前用户是否存在该组

复制代码
   public  bool IsUserInGroup(string groupName)   {         bool inGroup = false;           try         {                SPGroup group = SPContext.Current.Web.Groups[groupName];                 inGroup = group.ContainsCurrentUser;        }         catch (Exception ex)         {                 // SharePoint throws an exception if the group indexer                // is not a group the current user belongs to.                inGroup = false;          }         return inGroup;   }
复制代码