SharePoint 权限
SPSite site = listEvent.Site;
SPWeb web = site.OpenWeb();
string urlVal = listEvent.WebUrl + "/" + listEvent.UrlAfter;
SPFile file = web.GetFile(listEvent.UrlAfter);
while (file.CheckOutStatus != SPFile.SPCheckOutStatus.None)
{
file = web.GetFile(listEvent.UrlAfter);
}
SPListItem myItem = file.Item;
//取消继承
if (!myItem.HasUniqueRoleAssignments)
myItem.BreakRoleInheritance(true);
//清除权限
foreach (SPRoleAssignment roleAssignment in myItem.RoleAssignments)
{
roleAssignment.RoleDefinitionBindings.RemoveAll();
roleAssignment.Update();
}
SPGroup groupAdmin = web.SiteGroups["项目管理系统管理员"];
SPRoleDefinition RoleDefContributor = web.RoleDefinitions.GetByType(SPRoleType.Contributor);
SPRoleDefinition RoleDefAdministrator = web.RoleDefinitions.GetByType(SPRoleType.Administrator);
SPRoleAssignment RoleAssAdmin = new SPRoleAssignment((SPPrincipal)groupAdmin);
SPRoleAssignment RoleAssAuthor = new SPRoleAssignment((SPPrincipal)file.Author);
RoleAssAdmin.RoleDefinitionBindings.Add(RoleDefAdministrator);
RoleAssAuthor.RoleDefinitionBindings.Add(RoleDefContributor);
//重新分配权限
myItem.RoleAssignments.Add(RoleAssAdmin);
myItem.Update();
myItem.RoleAssignments.Add(RoleAssAuthor);
myItem.Update();
using(SPWeb oParentWebsite = SPContext.Current.Site.AllWebs["Site_Name"])
{
SPWebCollection collWebsites = oParentWebsite.Webs;
SPUser oUser = oParentWebsite.Users["User_Name"];
foreach (SPWeb oWebsite in collWebsites)
{
SPRole oRole = oWebsite.Roles["Role_Name"];
oRole.RemoveUser(oUser);
oWebsite.Dispose();
}
}