此处使用的是eventhandler 以下只贴出代码部分,仅供参考
public override void ItemAdded(SPItemEventProperties properties)
{
base.ItemAdded(properties);
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPSite Site = new SPSite("http://litsoft01"); //e.g., "http://myserver/mysite"
SPWeb Web = Site.OpenWeb();
SPList List = Web.GetListFromUrl("/DocumentLab/Forms/AllItems.aspx");
//取消继承
if (!ListItem.HasUniqueRoleAssignments)
ListItem.BreakRoleInheritance(true);
//清除权限
foreach (SPRoleAssignment roleAssignment in ListItem.RoleAssignments)
{
roleAssignment.RoleDefinitionBindings.RemoveAll();
roleAssignment.Update();
}
SPRoleDefinition role = Web.RoleDefinitions.GetByType(SPRoleType.Reader);
SPGroup spGroup = Web.SiteGroups["UserGroup"];
SPRoleAssignment assignment = new SPRoleAssignment(spGroup);
assignment.RoleDefinitionBindings.Add(role);
ListItem.RoleAssignments.Add(assignment);
});
}