당신은 할 수 있습니다 : 당신은 바인딩 몇 가지 정의를 취소해야하는 경우
SPUser user = ...;
list.RoleAssignments.Remove(user);
당신은 할 수 있습니다 :
SPUser user = ...;
list.RoleAssignments.GetAssignmentByPrincipal(user).RoleDefinitionBindings.Remove(..);
하는 경우 당신이 원하지 않으시면, 더 자세히 설명해주십시오.
업데이트 : 다음은 테스트 한 샘플 코드이며 작동합니다. Contribute 역할을 제거하고 읽기 역할을 대상 그룹에 추가합니다. 영어가 아닌 Sharepoint 버전이 있으므로 역할 이름을 확인하십시오.
static void Main(string[] args)
{
using (SPSite site = new SPSite("site_url"))
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.GetList(web.Url + "/" + "list_url");
SPGroup group = web.SiteGroups["target_group_name"];
SPRoleDefinition contributeDef = web.RoleDefinitions["Contribute"];
SPRoleDefinition readDef = web.RoleDefinitions["Read"];
SPRoleAssignment contributeRole = new SPRoleAssignment(group);
contributeRole.RoleDefinitionBindings.Add(contributeDef);
if (!list.HasUniqueRoleAssignments) // required to make role change
list.BreakRoleInheritance(true);
var assignmentForGroup = list.RoleAssignments.GetAssignmentByPrincipal(group);
assignmentForGroup.RoleDefinitionBindings.Remove(contributeDef);
assignmentForGroup.RoleDefinitionBindings.Add(readDef);
assignmentForGroup.Update();
}
}
}
직원 그룹에 목록에 대한 참여 권한이 있다고 가정 해 봅시다. 대신 읽기 권한이 있어야합니다. 내가 게시 한 코드를 사용하여 읽음을 줄 수는 있지만 처음에는 Contribute를 취소해야합니다. – Nick
작업 예제로 질문을 업데이트했습니다. – EvgK