роли чистых документа в библиотеке Doc

голоса
2

Я разработка обработчика событий, чтобы очистить вверх RolesAssignments нового элемента библиотеки документов в MOSS. Я искал способ, который может очистить все RolesAssignments эффективно, хотя лучший способ я нашел швы быть перебрать RolesAssignments и удалять по одному? Есть еще один способ, чтобы очистить все RolesAssignments для элемента?

Код, я использую для очистки RolesAssignments выглядеть следующим образом:

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

Кто-нибудь есть какие-либо идеи о том, как бороться с этим?

Задан 09/12/2008 в 15:48
источник пользователем
На других языках...                            


3 ответов

голоса
2

Примером вы дали в теле вашего вопроса является наиболее правильным способом сделать это. ResetRoleInheritance и BreakRoleInheritance может делать то, что вам нужно, но это побочный эффект от операций, которые они выполняют. Их цель состоит в том, чтобы не удалить RoleAssignments, а работать на наследование роли. Из MSDN:

ResetRoleInheritance - «Удаляет локальные задания ролей и возвращается к роли заданий из родительского объекта.»

BreakRoleInheritance - «создает уникальные назначения ролей для элемента , а не наследуя их от родителей.»

Если наследование роли уже нарушено, и вы используете конкретные назначения ролей, их следует удалить с помощью цикла, как у вас есть в вашем вопросе.

Ответил 09/12/2008 в 20:04
источник пользователем

голоса
1

У меня есть ответ, поставить СВОЙСТВА SPListItem.BreakRoleInheritance (лжи), чтобы разорвать роль наследования и удалить назначение ролей.

Ответил 09/12/2008 в 18:51
источник пользователем

голоса
-1

Как насчет ResetRoleInheritance? Это должно очистить все RoleAssignments.

Ответил 09/12/2008 в 17:02
источник пользователем

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