七星揽月

Efforts To Make The Best Of Their……
一口吃不出一个胖子,但胖子却是一口一口吃出来的,只要能每天坚持下来,我相信,一定会有收获的
每天进步一点点
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

Sharepoint 在网站中创建用户组并添加权限

Posted on 2012-11-15 17:30  期星揽月  阅读(544)  评论(0编辑  收藏  举报
        /// <summary>
        /// 在当前网站中创建用户组
         /// </summary>
        /// <param name="strGroupName">用户组名称</param>
        /// <param name="strPermission">用户组权限</param>
        /// <param name="strDescription">用户组描述</param>
        private void CreateGroup(string strGroupName, string strPermission, string strDescription)
        {
            SPSecurity.RunWithElevatedPrivileges(delegate() {
                try
                {
                    using (SPSite site = SPContext.Current.Site)
                    {
                        SPGroupCollection groups = site.RootWeb.SiteGroups;
                        SPMember spMember = site.RootWeb.CurrentUser;
                        SPUser spUser = site.RootWeb.CurrentUser;

                        groups.Add(strGroupName,spMember,spUser, strPermission);
                        
                        AddPermission(site.RootWeb, strGroupName, strPermission);
                    }
                }
                catch (Exception ex) { throw ex; }
            });
        }

        /// <summary>
        /// 给指定用户组添加权限
         /// </summary>
        /// <param name="spWeb">网站url</param>
        /// <param name="spGroupName">用户组名称</param>
        /// <param name="strPermission">权限名称</param>
        private void AddPermission(SPWeb spWeb,string spGroupName, string strPermission)
        {
            try
            {
                spWeb.AllowUnsafeUpdates = true;
                SPRoleAssignment roleAssignment = new SPRoleAssignment(spWeb.SiteGroups[spGroupName]);
                roleAssignment.RoleDefinitionBindings.Add(spWeb.RoleDefinitions[strPermission]);

                if (!spWeb.HasUniqueRoleAssignments)
                {
                    spWeb.BreakRoleInheritance(false);
                }
                spWeb.RoleAssignments.Add(roleAssignment);
                spWeb.Update();
            }
            catch (Exception ex) { throw ex; }
            finally { spWeb.AllowUnsafeUpdates = false; }
        }