papéis de documentos limpos em uma Biblioteca Doc

votos
2

Tenho vindo a desenvolver um manipulador de eventos para limpar as RolesAssignments do novo item de uma biblioteca de documentos no MOSS. Eu procurei por um método que pudesse limpar todos os RolesAssignments eficiente, embora a melhor maneira que eu encontrei costuras para ser percorrer os RolesAssignments e excluir um por um? Existe outra maneira de limpar todas as RolesAssignments para um item?

O código que estou usando para limpar as RolesAssignments parecido com este:

    for (int i = ListItem.RoleAssignments.Count - 1; i >= 0; --i)
    { 
        ListItem.RoleAssignments.Remove(i); 
    }

Alguém tem alguma idéia de como lidar com isso?

Publicado 09/12/2008 em 15:48
fonte usuário
Em outras línguas...                            


3 respostas

votos
2

O exemplo que você deu dentro do corpo da sua pergunta é a maneira mais correta de fazer isso. ResetRoleInheritance e BreakRoleInheritance pode fazer o que você precisa, mas isso é o efeito colateral das operações que executam. Sua finalidade não é para remover RoleAssignments, mas sim operar em herança papel. De MSDN:

ResetRoleInheritance - "Remove as atribuições de função locais e reverte para atribuições de função do objeto pai."

BreakRoleInheritance - "Cria únicas atribuições de função para o item em vez de herdar-los de um pai."

Se a herança papel já está quebrado e você estiver usando atribuições de função específicas, você deve removê-los usando um loop que você tem na sua pergunta.

Respondeu 09/12/2008 em 20:04
fonte usuário

votos
1

Eu tenho a resposta, coloque o SPListItem.BreakRoleInheritance propertie (false) para quebrar a herança papel e remover as atribuições de função.

Respondeu 09/12/2008 em 18:51
fonte usuário

votos
-1

Como cerca de ResetRoleInheritance? Isso deve limpar todos os RoleAssignments.

Respondeu 09/12/2008 em 17:02
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more