Czyste role dokumentu w Bibliotece Doc

głosy
2

I zostały rozwijanie programu obsługi zdarzeń, aby oczyścić RolesAssignments nowego elementu w bibliotece dokumentów w mchu. Rozglądałem się za pomocą metody, która mogłaby oczyścić wszystkie RolesAssignments sprawnie, choć najlepszym sposobem znalazłem szwy być pętla przez RolesAssignments i usuwać jeden po drugim? Czy istnieje inny sposób, aby oczyścić wszystkie RolesAssignments za przedmiot?

Kod używam do czyszczenia RolesAssignments wyglądać następująco:

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

Czy ktoś ma jakieś pomysły jak sobie z tym poradzić?

Utwórz 09/12/2008 o 15:48
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
2

Przykład dałeś w ciele swoim pytaniu jest najbardziej poprawny sposób to zrobić. ResetRoleInheritance i BreakRoleInheritance może zrobić co trzeba, ale jest to efekt uboczny wykonywanych działań. Ich celem nie jest usunięcie RoleAssignments, ale raczej działają na roli dziedziczenia. Od MSDN:

ResetRoleInheritance - „Usuwa miejscowe przypisania ról i powraca do przypisania ról z obiektu nadrzędnego.”

BreakRoleInheritance - „Tworzy unikatowe przypisania ról dla elementu zamiast dziedziczy je od rodzica”.

Jeśli rola dziedziczenia jest już złamane i używasz konkretne przypisania ról, należy je usunąć za pomocą pętli, jak masz w swoim pytaniu.

Odpowiedział 09/12/2008 o 20:04
źródło użytkownik

głosy
1

Mam odpowiedź, umieścić propertie SPListItem.BreakRoleInheritance (false), aby przerwać dziedziczenie ról i usunąć przypisania ról.

Odpowiedział 09/12/2008 o 18:51
źródło użytkownik

głosy
-1

Jak o ResetRoleInheritance? To powinno usunąć wszystkie RoleAssignments.

Odpowiedział 09/12/2008 o 17:02
źródło użytkownik

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