刘政道 - 应用程序框架

《31天学会CRM项目开发(C#编程入门及项目实战)》作者,IT经理,程序员
  博客园  :: 新随笔  :: 联系 :: 管理

SharePoint 权限

Posted on 2008-09-02 14:21  刘政道  阅读(936)  评论(0编辑  收藏  举报
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();
         }
}