sharepoint权限操作(记录以备忘)
生活随笔
收集整理的這篇文章主要介紹了
sharepoint权限操作(记录以备忘)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
using Microsoft.SharePoint;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace SharePointProject2
{class Class2{/// <summary>/// 判斷組是否存在/// </summary>/// <param name="web"></param>/// <param name="groupname"></param>/// <returns></returns>public bool IsExistGroup(SPWeb web, string groupname){try{foreach (SPGroup grouplist in web.SiteGroups)//判斷組是否存在
{if (grouplist.ToString().ToLower() == groupname.ToLower())return true;}return false;}catch (Exception){throw;}}/// <summary>/// 新建組/// </summary>/// <param name="web"></param>/// <param name="groupname"></param>/// <param name="member"></param>/// <param name="spuser"></param>/// <param name="description"></param>/// <returns></returns>public bool AddGroup(SPWeb web, string groupname, SPMember member, SPUser spuser, string description){try{if (!IsExistGroup(web, groupname)){web.SiteGroups.Add(groupname, member, spuser, description);//新建組return true;}return false;}catch (Exception){throw;}}/// <summary>/// 判斷指定組是否存在用戶/// </summary>/// <param name="web"></param>/// <param name="username">Domin\\Name形式</param>/// <param name="groupname"></param>/// <returns></returns>public bool IsExistUser(SPWeb web, string username, string groupname){try{foreach (SPUser userlist in web.SiteGroups[groupname].Users)//判斷指定組是否存在用戶
{if (userlist.ToString().ToLower() == username.ToLower())return true;}return false;}catch (Exception){throw;}}/// <summary>/// 根據指定的組新建用戶/// </summary>/// <param name="web"></param>/// <param name="loginname">登錄名:Domin\\Name形式</param>/// <param name="groupname">組名稱</param>/// <param name="email">Email</param>/// <param name="cnname">中文名</param>/// <param name="notes">用戶說明</param>/// <returns>bool</returns>public bool AddUserToGroup(SPWeb web, string loginname, string groupname, string email, string cnname, string notes){try{if (!IsExistUser(web, loginname, groupname)){web.SiteGroups[groupname].AddUser(loginname, email, cnname, notes);//新建用戶return true;}return false;}catch (Exception){throw;}}/// <summary>/// 組權限分配與定義(New)/// </summary>/// <param name="web"></param>/// <param name="groupname"></param>/// <param name="roles"></param>/// <returns></returns>public bool AddGroupToRoles(SPWeb web, string groupname, string[] roles){try{string[] _roles = roles;int rolemun = _roles.Length;if (IsExistGroup(web, groupname)){//改變站點繼承權if (!web.HasUniqueRoleDefinitions){web.RoleDefinitions.BreakInheritance(true, true);//復制父站點角色定義并且保持權限
}//站點繼承權改變后重新設置狀態web.AllowUnsafeUpdates = true;//組權限分配與定義(New)SPRoleDefinitionCollection roleDefinitions = web.RoleDefinitions;SPRoleAssignmentCollection roleAssignments = web.RoleAssignments;SPMember memCrossSiteGroup = web.SiteGroups[groupname];SPPrincipal myssp = (SPPrincipal)memCrossSiteGroup;SPRoleAssignment myroles = new SPRoleAssignment(myssp);SPRoleDefinitionBindingCollection roleDefBindings = myroles.RoleDefinitionBindings;if (rolemun > 0){for (int i = 0; i < rolemun; i++){roleDefBindings.Add(roleDefinitions[_roles[i]]);}}roleAssignments.Add(myroles);return true;}return false;}catch (Exception){throw;}}protected void btnCreateSite_Click(object sender, EventArgs e){try{SPSite site = new SPSite("http://contososrv:8010/");//string spwt = SPWebTemplate.WebTemplateSTS;//默認選擇協作站點模板
web = site.OpenWeb("Test/");web.AllowUnsafeUpdates = true;SPMember memUser = web.Users[0];SPUser suser = web.Users[0];//新建組//web.SiteGroups.Add("skyteam3", memUser, suser, "new skyteam");//web.SiteGroups["skyteam3"].AddUser("adr\\administrator", "pccai@adr.svic1", "蔡", "系統維修人員");//web.Groups["skyteam2"].AddUser("adr\\pccai", "pccai@adr.svic1", "蔡", "系統維修人員");//新建子站點string currentTemplate = web.WebTemplate;//web.Webs.Add("Test2", "站點名稱2", "站點描述2", 2052, "_GLOBAL_#0", true, false);//打開子站點SPWeb web2 = site.OpenWeb("Test/Test2");web2.AllowUnsafeUpdates = true;// web2.SiteGroups.Add("skyteam6", memUser, suser, "new skyteam");//新建組// web2.SiteGroups["skyteam6"].AddUser("adr\\administrator", "administrator@adr.svic1", "邊", "系統維修人員");//改變站點繼承權if (!web2.HasUniqueRoleDefinitions){web2.RoleDefinitions.BreakInheritance(true, true);}//站點繼承權改變后重新設置狀態web2.AllowUnsafeUpdates = true;//添加權限級別 (Role) //SPRoleDefinition roleDefinition = new SPRoleDefinition();//roleDefinition.Name = "項目角色";//roleDefinition.Description = "項目角色可以批準所有項目情況.";//roleDefinition.BasePermissions = SPBasePermissions.FullMask ^ SPBasePermissions.ManagePermissions;//web2.RoleDefinitions.Add(roleDefinition);//更改權限級別 (Permissions) SPRoleDefinitionCollection roles = web2.RoleDefinitions;SPRoleDefinition roleDefinition1 = roles["讀取"];roleDefinition1.BasePermissions = SPBasePermissions.AddListItems |SPBasePermissions.BrowseDirectories |SPBasePermissions.EditListItems |SPBasePermissions.DeleteListItems |SPBasePermissions.AddDelPrivateWebParts;roleDefinition1.Update();//用戶權限分配與定義(New)SPRoleDefinitionCollection roleDefinitions = web2.RoleDefinitions;SPRoleAssignmentCollection roleAssignments = web2.RoleAssignments;SPRoleAssignment roleAssignment = new SPRoleAssignment("adr\\administrator", "administrator@Somewhere.com", "Display_Name", "Notes");SPRoleDefinitionBindingCollection roleDefBindings = roleAssignment.RoleDefinitionBindings;roleDefBindings.Add(roleDefinitions["項目角色"]);roleAssignments.Add(roleAssignment);//權限定義(Old)//SPRoleCollection siteGroups = web2.Roles;//siteGroups.Add("skyteam6", "Description", SPRights.ManageWeb | SPRights.ManageSubwebs);//獲得權限定義SPRoleDefinition sprole = roleDefinitions.GetByType(SPRoleType.Reader);string spname = sprole.Name;//組權限分配與定義(New)SPRoleDefinitionCollection roleDefinitions1 = web2.RoleDefinitions;SPRoleAssignmentCollection roleAssignments1 = web2.RoleAssignments;SPMember memCrossSiteGroup = web2.SiteGroups["skyteam6"];SPPrincipal myssp = (SPPrincipal)memCrossSiteGroup;SPRoleAssignment myroles = new SPRoleAssignment(myssp);SPRoleDefinitionBindingCollection roleDefBindings1 = myroles.RoleDefinitionBindings;roleDefBindings1.Add(roleDefinitions1["設計"]);roleDefBindings1.Add(roleDefinitions1["讀取"]);roleAssignments1.Add(myroles);//組權限分配與定義(Old)//SPMember member = web2.Roles["skyteam"];//web2.Permissions[member].PermissionMask =// SPRights.ManageLists | SPRights.ManageListPermissions;//更改列表權限(Old)//SPList list = site.Lists["通知"];//SPPermissionCollection perms = list.Permissions;//SPUserCollection users = site.Users;//SPMember member = users["ADR\\pccai"];//list.Permissions[member].PermissionMask = SPRights.AddListItems | SPRights.EditListItems;// PermissionCollection perc = web.Permissions;//perc.AddUser("adr\\administrator", "administrator@adr.srvc1", "title", "Notes", PortalRight.AllSiteRights);// SecurityManager.AddRole(context, "title", "descriptions", PortalRight.ManageSite);
}catch (Exception){throw;}}}
}
?
總結
以上是生活随笔為你收集整理的sharepoint权限操作(记录以备忘)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 判断线段相交和交点
- 下一篇: 【linux草鞋应用编程系列】_3_ 进