1 /**//// <summary>
  2        /// 判断组是否存在
  3        /// </summary>
  4        /// <param name="web"></param>
  5        /// <param name="groupname"></param>
  6        /// <returns></returns>
  7        public bool IsExistGroup(SPWeb web, string groupname)
  8        {
  9            try
 10            {
 11                foreach (SPGroup grouplist in web.SiteGroups)//判断组是否存在
 12                {
 13                    if (grouplist.ToString().ToLower() == groupname.ToLower())
 14                        return true;
 15                }
 16                return false;
 17            }
 18            catch (Exception)
 19            {
 20                throw;
 21            }
 22        }
 23
 24        /**//// <summary>
 25        /// 新建组
 26        /// </summary>
 27        /// <param name="web"></param>
 28        /// <param name="groupname"></param>
 29        /// <param name="member"></param>
 30        /// <param name="spuser"></param>
 31        /// <param name="description"></param>
 32        /// <returns></returns>
 33        public bool AddGroup(SPWeb web, string groupname, SPMember member, SPUser spuser, string description)
 34        {
 35            try
 36            {
 37                if (!IsExistGroup(web, groupname))
 38                {
 39                    web.SiteGroups.Add(groupname, member, spuser, description);//新建组
 40                    return true;
 41                }
 42                return false;
 43            }
 44            catch (Exception)
 45            {
 46
 47                throw;
 48            }
 49        }
 50
 51        /**//// <summary>
 52        /// 判断指定组是否存在用户
 53        /// </summary>
 54        /// <param name="web"></param>
 55        /// <param name="username">Domin\\Name形式</param>
 56        /// <param name="groupname"></param>
 57        /// <returns></returns>
 58        public bool IsExistUser(SPWeb web, string username, string groupname)
 59        {
 60            try
 61            {
 62                foreach (SPUser userlist in web.SiteGroups[groupname].Users)//判断指定组是否存在用户
 63                {
 64                    if (userlist.ToString().ToLower() == username.ToLower())
 65                        return true;
 66                }
 67                return false;
 68            }
 69            catch (Exception)
 70            {
 71                throw;
 72            }
 73        }
 74
 75        /**//// <summary>
 76        /// 根据指定的组新建用户
 77        /// </summary>
 78        /// <param name="web"></param>
 79        /// <param name="loginname">登录名:Domin\\Name形式</param>
 80        /// <param name="groupname">组名称</param>
 81        /// <param name="email">Email</param>
 82        /// <param name="cnname">中文名</param>
 83        /// <param name="notes">用户说明</param>
 84        /// <returns>bool</returns>
 85        public bool AddUserToGroup(SPWeb web, string loginname, string groupname, string email, string cnname, string notes)
 86        {
 87            try
 88            {
 89                if (!IsExistUser(web, loginname, groupname))
 90                {
 91                    web.SiteGroups[groupname].AddUser(loginname, email, cnname, notes);//新建用户
 92                    return true;
 93                }
 94                return false;
 95            }
 96            catch (Exception)
 97            {
 98
 99                throw;
100            }
101        }
102        /**//// <summary>
103        /// 组权限分配与定义(New)
104        /// </summary>
105        /// <param name="web"></param>
106        /// <param name="groupname"></param>
107        /// <param name="roles"></param>
108        /// <returns></returns>
109        public bool AddGroupToRoles(SPWeb web, string groupname, string[] roles)
110        {
111            try
112            {
113                string[] _roles = roles;
114                int rolemun = _roles.Length;
115
116                if (IsExistGroup(web, groupname))
117                {
118                    //改变站点继承权
119                    if (!web.HasUniqueRoleDefinitions)
120                    {
121                        web.RoleDefinitions.BreakInheritance(true, true);//复制父站点角色定义并且保持权限
122                    }
123
124                    //站点继承权改变后重新设置状态
125                    web.AllowUnsafeUpdates = true;
126
127                    //组权限分配与定义(New)
128                    SPRoleDefinitionCollection roleDefinitions = web.RoleDefinitions;
129                    SPRoleAssignmentCollection roleAssignments = web.RoleAssignments;
130                    SPMember memCrossSiteGroup = web.SiteGroups[groupname];
131                    SPPrincipal myssp = (SPPrincipal)memCrossSiteGroup;
132                    SPRoleAssignment myroles = new SPRoleAssignment(myssp);
133                    SPRoleDefinitionBindingCollection roleDefBindings = myroles.RoleDefinitionBindings;
134                    if (rolemun > 0)
135                    {
136                        for (int i = 0; i < rolemun; i++)
137                        {
138                            roleDefBindings.Add(roleDefinitions[_roles[i]]);
139                        }
140                    }
141                    roleAssignments.Add(myroles);
142                    return true;
143                }
144                return false;
145            }
146            catch (Exception)
147            {
148
149                throw;
150            }
151        }
152
153        protected void btnCreateSite_Click(object sender, EventArgs e)
154        {  
155            
156            try
157            {
158                SPSite site = new SPSite("http://contososrv:8010/");
159
160                //string spwt = SPWebTemplate.WebTemplateSTS;//默认选择协作站点模板 
161
162                web = site.OpenWeb("Test/");
163                web.AllowUnsafeUpdates = true;
164                SPMember memUser = web.Users[0];
165                SPUser suser = web.Users[0];
166
167
168                //新建组
169                //web.SiteGroups.Add("skyteam3", memUser, suser, "new skyteam");
170                //web.SiteGroups["skyteam3"].AddUser("adr\\administrator", "pccai@adr.svic1", "蔡", "系统维修人员");
171                //web.Groups["skyteam2"].AddUser("adr\\pccai", "pccai@adr.svic1", "蔡", "系统维修人员");
172
173
174                //新建子站点
175                string currentTemplate = web.WebTemplate;
176                //web.Webs.Add("Test2", "站点名称2", "站点描述2", 2052, "_GLOBAL_#0", true, false);
177
178
179                //打开子站点
180                SPWeb web2 = site.OpenWeb("Test/Test2");
181                web2.AllowUnsafeUpdates = true;
182               // web2.SiteGroups.Add("skyteam6", memUser, suser, "new skyteam");//新建组
183               // web2.SiteGroups["skyteam6"].AddUser("adr\\administrator", "administrator@adr.svic1", "边", "系统维修人员");
184
185
186                //改变站点继承权
187                if (!web2.HasUniqueRoleDefinitions)
188                {
189                    web2.RoleDefinitions.BreakInheritance(true, true);
190                }
191
192                //站点继承权改变后重新设置状态
193                web2.AllowUnsafeUpdates = true;
194
195
196
197                //添加权限级别 (Role) 
198                //SPRoleDefinition roleDefinition = new SPRoleDefinition();
199                //roleDefinition.Name = "项目角色";
200                //roleDefinition.Description = "项目角色可以批准所有项目情况.";
201                //roleDefinition.BasePermissions = SPBasePermissions.FullMask ^ SPBasePermissions.ManagePermissions;
202                //web2.RoleDefinitions.Add(roleDefinition);
203
204
205                //更改权限级别 (Permissions) 
206                SPRoleDefinitionCollection roles = web2.RoleDefinitions;
207                SPRoleDefinition roleDefinition1 = roles["读取"];
208                roleDefinition1.BasePermissions = SPBasePermissions.AddListItems |
209                    SPBasePermissions.BrowseDirectories |
210                    SPBasePermissions.EditListItems |
211                    SPBasePermissions.DeleteListItems |
212                    SPBasePermissions.AddDelPrivateWebParts;
213                roleDefinition1.Update();
214
215
216                //用户权限分配与定义(New)
217                SPRoleDefinitionCollection roleDefinitions = web2.RoleDefinitions;
218                SPRoleAssignmentCollection roleAssignments = web2.RoleAssignments;
219                SPRoleAssignment roleAssignment = new SPRoleAssignment("adr\\administrator", "administrator@Somewhere.com", "Display_Name", "Notes");
220                SPRoleDefinitionBindingCollection roleDefBindings = roleAssignment.RoleDefinitionBindings;
221                roleDefBindings.Add(roleDefinitions["项目角色"]);
222                roleAssignments.Add(roleAssignment);
223
224
225                //权限定义(Old)
226                //SPRoleCollection siteGroups = web2.Roles;
227                //siteGroups.Add("skyteam6", "Description", SPRights.ManageWeb | SPRights.ManageSubwebs);
228
229
230                //获得权限定义
231                SPRoleDefinition sprole = roleDefinitions.GetByType(SPRoleType.Reader);
232                string spname = sprole.Name;
233
234
235                //组权限分配与定义(New)
236                SPRoleDefinitionCollection roleDefinitions1 = web2.RoleDefinitions;
237                SPRoleAssignmentCollection roleAssignments1 = web2.RoleAssignments;
238                SPMember memCrossSiteGroup = web2.SiteGroups["skyteam6"];
239                SPPrincipal myssp = (SPPrincipal)memCrossSiteGroup;
240                SPRoleAssignment myroles = new SPRoleAssignment(myssp);
241                SPRoleDefinitionBindingCollection roleDefBindings1 = myroles.RoleDefinitionBindings;
242                roleDefBindings1.Add(roleDefinitions1["设计"]);
243                roleDefBindings1.Add(roleDefinitions1["读取"]);
244                roleAssignments1.Add(myroles);
245
246
247                //组权限分配与定义(Old)
248                //SPMember member = web2.Roles["skyteam"];
249                //web2.Permissions[member].PermissionMask =
250                //    SPRights.ManageLists | SPRights.ManageListPermissions;
251
252
253
254                //更改列表权限(Old)
255                //SPList list = site.Lists["通知"];
256                //SPPermissionCollection perms = list.Permissions;
257                //SPUserCollection users = site.Users;
258                //SPMember member = users["ADR\\pccai"];
259                //list.Permissions[member].PermissionMask = SPRights.AddListItems | SPRights.EditListItems;
260
261
262
263              //  PermissionCollection perc = web.Permissions;
264                //perc.AddUser("adr\\administrator", "administrator@adr.srvc1", "title", "Notes", PortalRight.AllSiteRights);
265               // SecurityManager.AddRole(context, "title", "descriptions", PortalRight.ManageSite);
266
267
268           
269            }
270            catch (Exception)
271            {
272                throw;
273            }
274
275        }

转载于:https://www.cnblogs.com/pccai/articles/619191.html

权限操作(部分代码,仅共参考)相关推荐

  1. SAP FICO资产卡片批导开发说明书(包括测试样例、程序代码仅作参考,不保证一定可以运行)

    程序说明: 满足财务资产卡片批量创建的需求 输入屏幕: 执行进入界面提供测试运行功能: 支持模板下载功能 导入模板如下: 资产分类 必填 公司代码 必填 资产描述 必填 序列号 存货号

  2. SAP FICO 银行对账功能开发说明书(包括测试样例、程序代码仅作参考,不保证一定可以运行)

    开发说明书 输入屏幕 序号 字段说明 选择类型 参考表及字段

  3. SAP FICO 内部往来对账功能开发说明书(包括测试样例、程序代码仅作参考,不保证一定可以运行)

    开发说明书 内部往来货款对账 输入屏幕 对账科目只能选择 1122030000   应收账款_内部往来_货款 2202030000   应付账款_内部往来_货款 输出布局及样式 程序逻辑 自建表(客商 ...

  4. SAP FICO 通用三栏明细账开发说明书(包括测试样例、程序代码仅作参考,不保证一定可以运行)

    开发源代码 zfir004 Code listing for: ZFIR004 Description: 通用三栏式明细账 *&-------------------------------- ...

  5. SAP FICO 应付暂估账龄表【报表界面展示、程序代码仅作参考,不保证一定可以运行】

    报表展示  源代码 ZFIR302 *&---------------------------------------------------------------------* *& ...

  6. SAP FICO产品成本组件分析表开发说明书(包括测试样例、程序代码仅作参考,不保证一定可以运行)

    程序说明 基于期间物料的成本组件明细报表 输入屏幕 屏幕字段中文描述 选择类型 屏幕字段名称 参考字段名称

  7. linux文件系统扩容操作步骤,仅供参考

    1.查看/opt/aspire/product/ess/apache-tomcat-ess/webapps/doc文件系统使用率为91%,需要扩容[root@CMDI-DZQZ-Svr /]# df ...

  8. SAP FICO CBS接口-银企直连联盟收款功能开发说明书(包括测试样例、程序代码仅作参考,不保证一定可以运行)

    开发说明书 程序说明 客户款到账,SAP调接口<查询历史交易数据(ERQRYTRS)>从CBS读取相关银行流水单,并记账.联盟收款采用一个单独账号收款,默认银行账号.一个流水单生成一笔凭证 ...

  9. SAP FICO 科目余额查询表开发说明书(包括测试样例、程序代码仅作参考,不保证一定可以运行)

    开发源代码 zfi_rep_011 Code listing for: ZFI_REP_011 Description: 科目余额表 *&--------------------------- ...

最新文章

  1. python零基础入门教程学习要多久-廖雪峰python教程要学多久-零基础学Python需要多久...
  2. Microsoft Visual Studio 2010 和 TFS 下载
  3. 不要伤害指针(3)--指针和结构类型的关系
  4. linux非守护线程一直不释放,Linux pthread 和 java thread 的是 / 非守护线程的行为
  5. TensorFlow:实战Google深度学习框架(六)图像数据处理
  6. linux syslog服务器配置,自动发日志到另一台日志服务器
  7. 【CodeForces - 518D】Ilya and Escalator(概率dp,数学期望)
  8. linux3.3内核去哪下载,Linux Kernel下载|Linux Kernel v3.18.3 稳定版 - 121下载站
  9. u盘安装CENTOS后,启动missing operating system ,只能用U盘才能启动系统
  10. 42家企业入选中国卓越健康雇主榜;2020高交会聚焦3大亮点与5大趋势 | 美通企业日报...
  11. 酉矩阵(幺正矩阵、unitary matrix)
  12. 1.7 新概念 量词
  13. 【律联云知产课堂】商标注册需要什么条件?
  14. 人大金仓删除字段_人大金仓数据库V7升级V8遇到的一些问题
  15. EBS 报表开发:XML Publisher
  16. 制作html语言网站全攻略,(网页制作HTML代码全攻略.doc
  17. C++ 中的智能指针以及如何使用它们
  18. swift学习笔记一
  19. 海思HI3559A SDK文档说明
  20. 让电商运营10倍提效的自动化工具,你get了吗?

热门文章

  1. nodejs express搭建服务器(爬虫知乎精华帖,个人学习用)六 html
  2. 老赵很喜欢博士后和小工的故事,于是就编下去了
  3. FL Studio20.9中文补丁
  4. HTTP状态码及说明大全
  5. 癌症的征兆(不看后悔)
  6. php background,background什么意思
  7. 今天遭到鄙视了。突然感觉自己昏昏沉沉的过日子 究竟不是个事 自己得努力了!~!
  8. 更改android根目录文件夹读写权限
  9. 一个定时器生成多路PWM波形的原理和方法成都自动化开发
  10. Apple Watch必备!KUNER充电表带登场