权限操作(部分代码,仅共参考)

  1 ExpandedBlockStart.gif ContractedBlock.gif   /**/ /// <summary>
  2InBlock.gif        /// 判断组是否存在
  3InBlock.gif        /// </summary>
  4InBlock.gif        /// <param name="web"></param>
  5InBlock.gif        /// <param name="groupname"></param>
  6ExpandedBlockEnd.gif        /// <returns></returns>

  7 None.gif          public   bool  IsExistGroup(SPWeb web,  string  groupname)
  8 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {
  9InBlock.gif            try
 10ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 11InBlock.gif                foreach (SPGroup grouplist in web.SiteGroups)//判断组是否存在
 12ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
 13InBlock.gif                    if (grouplist.ToString().ToLower() == groupname.ToLower())
 14InBlock.gif                        return true;
 15ExpandedSubBlockEnd.gif                }

 16InBlock.gif                return false;
 17ExpandedSubBlockEnd.gif            }

 18InBlock.gif            catch (Exception)
 19ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 20InBlock.gif                throw;
 21ExpandedSubBlockEnd.gif            }

 22ExpandedBlockEnd.gif        }

 23 None.gif
 24 ExpandedBlockStart.gifContractedBlock.gif         /**/ /// <summary>
 25InBlock.gif        /// 新建组
 26InBlock.gif        /// </summary>
 27InBlock.gif        /// <param name="web"></param>
 28InBlock.gif        /// <param name="groupname"></param>
 29InBlock.gif        /// <param name="member"></param>
 30InBlock.gif        /// <param name="spuser"></param>
 31InBlock.gif        /// <param name="description"></param>
 32ExpandedBlockEnd.gif        /// <returns></returns>

 33 None.gif          public   bool  AddGroup(SPWeb web,  string  groupname, SPMember member, SPUser spuser,  string  description)
 34 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {
 35InBlock.gif            try
 36ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 37InBlock.gif                if (!IsExistGroup(web, groupname))
 38ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
 39InBlock.gif                    web.SiteGroups.Add(groupname, member, spuser, description);//新建组
 40InBlock.gif                    return true;
 41ExpandedSubBlockEnd.gif                }

 42InBlock.gif                return false;
 43ExpandedSubBlockEnd.gif            }

 44InBlock.gif            catch (Exception)
 45ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 46InBlock.gif
 47InBlock.gif                throw;
 48ExpandedSubBlockEnd.gif            }

 49ExpandedBlockEnd.gif        }

 50 None.gif
 51 ExpandedBlockStart.gifContractedBlock.gif         /**/ /// <summary>
 52InBlock.gif        /// 判断指定组是否存在用户
 53InBlock.gif        /// </summary>
 54InBlock.gif        /// <param name="web"></param>
 55InBlock.gif        /// <param name="username">Domin\\Name形式</param>
 56InBlock.gif        /// <param name="groupname"></param>
 57ExpandedBlockEnd.gif        /// <returns></returns>

 58 None.gif          public   bool  IsExistUser(SPWeb web,  string  username,  string  groupname)
 59 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {
 60InBlock.gif            try
 61ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 62InBlock.gif                foreach (SPUser userlist in web.SiteGroups[groupname].Users)//判断指定组是否存在用户
 63ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
 64InBlock.gif                    if (userlist.ToString().ToLower() == username.ToLower())
 65InBlock.gif                        return true;
 66ExpandedSubBlockEnd.gif                }

 67InBlock.gif                return false;
 68ExpandedSubBlockEnd.gif            }

 69InBlock.gif            catch (Exception)
 70ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 71InBlock.gif                throw;
 72ExpandedSubBlockEnd.gif            }

 73ExpandedBlockEnd.gif        }

 74 None.gif
 75 ExpandedBlockStart.gifContractedBlock.gif         /**/ /// <summary>
 76InBlock.gif        /// 根据指定的组新建用户
 77InBlock.gif        /// </summary>
 78InBlock.gif        /// <param name="web"></param>
 79InBlock.gif        /// <param name="loginname">登录名:Domin\\Name形式</param>
 80InBlock.gif        /// <param name="groupname">组名称</param>
 81InBlock.gif        /// <param name="email">Email</param>
 82InBlock.gif        /// <param name="cnname">中文名</param>
 83InBlock.gif        /// <param name="notes">用户说明</param>
 84ExpandedBlockEnd.gif        /// <returns>bool</returns>

 85 None.gif          public   bool  AddUserToGroup(SPWeb web,  string  loginname,  string  groupname,  string  email,  string  cnname,  string  notes)
 86 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {
 87InBlock.gif            try
 88ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 89InBlock.gif                if (!IsExistUser(web, loginname, groupname))
 90ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
 91InBlock.gif                    web.SiteGroups[groupname].AddUser(loginname, email, cnname, notes);//新建用户
 92InBlock.gif                    return true;
 93ExpandedSubBlockEnd.gif                }

 94InBlock.gif                return false;
 95ExpandedSubBlockEnd.gif            }

 96InBlock.gif            catch (Exception)
 97ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 98InBlock.gif
 99InBlock.gif                throw;
100ExpandedSubBlockEnd.gif            }

101ExpandedBlockEnd.gif        }

102 ExpandedBlockStart.gifContractedBlock.gif         /**/ /// <summary>
103InBlock.gif        /// 组权限分配与定义(New)
104InBlock.gif        /// </summary>
105InBlock.gif        /// <param name="web"></param>
106InBlock.gif        /// <param name="groupname"></param>
107InBlock.gif        /// <param name="roles"></param>
108ExpandedBlockEnd.gif        /// <returns></returns>

109 None.gif          public   bool  AddGroupToRoles(SPWeb web,  string  groupname,  string [] roles)
110 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {
111InBlock.gif            try
112ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
113InBlock.gif                string[] _roles = roles;
114InBlock.gif                int rolemun = _roles.Length;
115InBlock.gif
116InBlock.gif                if (IsExistGroup(web, groupname))
117ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
118InBlock.gif                    //改变站点继承权
119InBlock.gif                    if (!web.HasUniqueRoleDefinitions)
120ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
121InBlock.gif                        web.RoleDefinitions.BreakInheritance(truetrue);//复制父站点角色定义并且保持权限
122ExpandedSubBlockEnd.gif                    }

123InBlock.gif
124InBlock.gif                    //站点继承权改变后重新设置状态
125InBlock.gif                    web.AllowUnsafeUpdates = true;
126InBlock.gif
127InBlock.gif                    //组权限分配与定义(New)
128InBlock.gif                    SPRoleDefinitionCollection roleDefinitions = web.RoleDefinitions;
129InBlock.gif                    SPRoleAssignmentCollection roleAssignments = web.RoleAssignments;
130InBlock.gif                    SPMember memCrossSiteGroup = web.SiteGroups[groupname];
131InBlock.gif                    SPPrincipal myssp = (SPPrincipal)memCrossSiteGroup;
132InBlock.gif                    SPRoleAssignment myroles = new SPRoleAssignment(myssp);
133InBlock.gif                    SPRoleDefinitionBindingCollection roleDefBindings = myroles.RoleDefinitionBindings;
134InBlock.gif                    if (rolemun > 0)
135ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
136InBlock.gif                        for (int i = 0; i < rolemun; i++)
137ExpandedSubBlockStart.gifContractedSubBlock.gif                        dot.gif{
138InBlock.gif                            roleDefBindings.Add(roleDefinitions[_roles[i]]);
139ExpandedSubBlockEnd.gif                        }

140ExpandedSubBlockEnd.gif                    }

141InBlock.gif                    roleAssignments.Add(myroles);
142InBlock.gif                    return true;
143ExpandedSubBlockEnd.gif                }

144InBlock.gif                return false;
145ExpandedSubBlockEnd.gif            }

146InBlock.gif            catch (Exception)
147ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
148InBlock.gif
149InBlock.gif                throw;
150ExpandedSubBlockEnd.gif            }

151ExpandedBlockEnd.gif        }

152 None.gif
153 None.gif         protected   void  btnCreateSite_Click( object  sender, EventArgs e)
154 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {  
155InBlock.gif            
156InBlock.gif            try
157ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
158InBlock.gif                SPSite site = new SPSite("http://contososrv:8010/");
159InBlock.gif
160InBlock.gif                //string spwt = SPWebTemplate.WebTemplateSTS;//默认选择协作站点模板 
161InBlock.gif
162InBlock.gif                web = site.OpenWeb("Test/");
163InBlock.gif                web.AllowUnsafeUpdates = true;
164InBlock.gif                SPMember memUser = web.Users[0];
165InBlock.gif                SPUser suser = web.Users[0];
166InBlock.gif
167InBlock.gif
168InBlock.gif                //新建组
169InBlock.gif                //web.SiteGroups.Add("skyteam3", memUser, suser, "new skyteam");
170InBlock.gif                //web.SiteGroups["skyteam3"].AddUser("adr\\administrator", "pccai@adr.svic1", "蔡", "系统维修人员");
171InBlock.gif                //web.Groups["skyteam2"].AddUser("adr\\pccai", "pccai@adr.svic1", "蔡", "系统维修人员");
172InBlock.gif
173InBlock.gif
174InBlock.gif                //新建子站点
175InBlock.gif                string currentTemplate = web.WebTemplate;
176InBlock.gif                //web.Webs.Add("Test2", "站点名称2", "站点描述2", 2052, "_GLOBAL_#0", true, false);
177InBlock.gif
178InBlock.gif
179InBlock.gif                //打开子站点
180InBlock.gif                SPWeb web2 = site.OpenWeb("Test/Test2");
181InBlock.gif                web2.AllowUnsafeUpdates = true;
182InBlock.gif               // web2.SiteGroups.Add("skyteam6", memUser, suser, "new skyteam");//新建组
183InBlock.gif               // web2.SiteGroups["skyteam6"].AddUser("adr\\administrator", "administrator@adr.svic1", "边", "系统维修人员");
184InBlock.gif
185InBlock.gif
186InBlock.gif                //改变站点继承权
187InBlock.gif                if (!web2.HasUniqueRoleDefinitions)
188ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
189InBlock.gif                    web2.RoleDefinitions.BreakInheritance(truetrue);
190ExpandedSubBlockEnd.gif                }

191InBlock.gif
192InBlock.gif                //站点继承权改变后重新设置状态
193InBlock.gif                web2.AllowUnsafeUpdates = true;
194InBlock.gif
195InBlock.gif
196InBlock.gif
197InBlock.gif                //添加权限级别 (Role) 
198InBlock.gif                //SPRoleDefinition roleDefinition = new SPRoleDefinition();
199InBlock.gif                //roleDefinition.Name = "项目角色";
200InBlock.gif                //roleDefinition.Description = "项目角色可以批准所有项目情况.";
201InBlock.gif                //roleDefinition.BasePermissions = SPBasePermissions.FullMask ^ SPBasePermissions.ManagePermissions;
202InBlock.gif                //web2.RoleDefinitions.Add(roleDefinition);
203InBlock.gif
204InBlock.gif
205InBlock.gif                //更改权限级别 (Permissions) 
206InBlock.gif                SPRoleDefinitionCollection roles = web2.RoleDefinitions;
207InBlock.gif                SPRoleDefinition roleDefinition1 = roles["读取"];
208InBlock.gif                roleDefinition1.BasePermissions = SPBasePermissions.AddListItems |
209InBlock.gif                    SPBasePermissions.BrowseDirectories |
210InBlock.gif                    SPBasePermissions.EditListItems |
211InBlock.gif                    SPBasePermissions.DeleteListItems |
212InBlock.gif                    SPBasePermissions.AddDelPrivateWebParts;
213InBlock.gif                roleDefinition1.Update();
214InBlock.gif
215InBlock.gif
216InBlock.gif                //用户权限分配与定义(New)
217InBlock.gif                SPRoleDefinitionCollection roleDefinitions = web2.RoleDefinitions;
218InBlock.gif                SPRoleAssignmentCollection roleAssignments = web2.RoleAssignments;
219InBlock.gif                SPRoleAssignment roleAssignment = new SPRoleAssignment("adr\\administrator""administrator@Somewhere.com""Display_Name""Notes");
220InBlock.gif                SPRoleDefinitionBindingCollection roleDefBindings = roleAssignment.RoleDefinitionBindings;
221InBlock.gif                roleDefBindings.Add(roleDefinitions["项目角色"]);
222InBlock.gif                roleAssignments.Add(roleAssignment);
223InBlock.gif
224InBlock.gif
225InBlock.gif                //权限定义(Old)
226InBlock.gif                //SPRoleCollection siteGroups = web2.Roles;
227InBlock.gif                //siteGroups.Add("skyteam6", "Description", SPRights.ManageWeb | SPRights.ManageSubwebs);
228InBlock.gif
229InBlock.gif
230InBlock.gif                //获得权限定义
231InBlock.gif                SPRoleDefinition sprole = roleDefinitions.GetByType(SPRoleType.Reader);
232InBlock.gif                string spname = sprole.Name;
233InBlock.gif
234InBlock.gif
235InBlock.gif                //组权限分配与定义(New)
236InBlock.gif                SPRoleDefinitionCollection roleDefinitions1 = web2.RoleDefinitions;
237InBlock.gif                SPRoleAssignmentCollection roleAssignments1 = web2.RoleAssignments;
238InBlock.gif                SPMember memCrossSiteGroup = web2.SiteGroups["skyteam6"];
239InBlock.gif                SPPrincipal myssp = (SPPrincipal)memCrossSiteGroup;
240InBlock.gif                SPRoleAssignment myroles = new SPRoleAssignment(myssp);
241InBlock.gif                SPRoleDefinitionBindingCollection roleDefBindings1 = myroles.RoleDefinitionBindings;
242InBlock.gif                roleDefBindings1.Add(roleDefinitions1["设计"]);
243InBlock.gif                roleDefBindings1.Add(roleDefinitions1["读取"]);
244InBlock.gif                roleAssignments1.Add(myroles);
245InBlock.gif
246InBlock.gif
247InBlock.gif                //组权限分配与定义(Old)
248InBlock.gif                //SPMember member = web2.Roles["skyteam"];
249InBlock.gif                //web2.Permissions[member].PermissionMask =
250InBlock.gif                //    SPRights.ManageLists | SPRights.ManageListPermissions;
251InBlock.gif
252InBlock.gif
253InBlock.gif
254InBlock.gif                //更改列表权限(Old)
255InBlock.gif                //SPList list = site.Lists["通知"];
256InBlock.gif                //SPPermissionCollection perms = list.Permissions;
257InBlock.gif                //SPUserCollection users = site.Users;
258InBlock.gif                //SPMember member = users["ADR\\pccai"];
259InBlock.gif                //list.Permissions[member].PermissionMask = SPRights.AddListItems | SPRights.EditListItems;
260InBlock.gif
261InBlock.gif
262InBlock.gif
263InBlock.gif              //  PermissionCollection perc = web.Permissions;
264InBlock.gif                //perc.AddUser("adr\\administrator", "administrator@adr.srvc1", "title", "Notes", PortalRight.AllSiteRights);
265InBlock.gif               // SecurityManager.AddRole(context, "title", "descriptions", PortalRight.ManageSite);
266InBlock.gif
267InBlock.gif
268InBlock.gif           
269ExpandedSubBlockEnd.gif            }

270InBlock.gif            catch (Exception)
271ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
272InBlock.gif                throw;
273ExpandedSubBlockEnd.gif            }

274InBlock.gif
275ExpandedBlockEnd.gif        }

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值