Поделиться через


Класс SPRoleCollection

Примечание. Этот API устарел.

Вместо этого воспользуйтесь новыми классами, SPRoleDefinition и SPRoleAssignment для определения ролей и назначать их пользователям. Дополнительные сведения содержатся в разделе Changes in the Authorization Object Model. (В Windows SharePoint Services 2.0SPRoleCollection коллекции объектов SPRole и сохраняется для обеспечения обратной совместимости.)

Иерархия наследования

System.Object
  Microsoft.SharePoint.Administration.SPAutoSerializingObject
    Microsoft.SharePoint.SPBaseCollection
      Microsoft.SharePoint.SPRoleCollection

Пространство имен:  Microsoft.SharePoint
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
<ObsoleteAttribute("Use the SPRoleDefinitionCollection class instead")> _
Public Class SPRoleCollection _
    Inherits SPBaseCollection
'Применение
Dim instance As SPRoleCollection
[ObsoleteAttribute("Use the SPRoleDefinitionCollection class instead")]
public class SPRoleCollection : SPBaseCollection

Замечания

Возвращает объект SPRoleCollection , представляющий коллекцию ролей для пользователя, группы или веб-узла, используйте свойство Roles класса SPUser, SPGroupили SPWeb . Используйте индексатор для получения одной роли из коллекции. Например если коллекция присваивается переменной с именем collRoles, используйтеindexcollRoles[] в C# илиindexcollRoles() в Visual Basic, где index является индексом роли в коллекции или отображаемое имя группы узлов.

Примеры

В следующем примере кода добавляет всех пользователей сайта указанной роли для всех дочерних узлов узла.

Dim site As SPWeb = 
    SPContext.Current.Site.AllWebs("Site_Name")
Dim subSites As SPWebCollection = site.Webs
Dim users As SPUserCollection = site.Users
Dim user As SPUser

For Each user In  users

    Dim subSite As SPWeb

    For Each subSite In  subSites

        Dim role As SPRole = subSite.Roles("Role_Name")

        role.AddUser(user)

    Next subSite

Next user 
using(SPWeb oWebsite = SPContext.Current.Site.AllWebs["Site_Name"])
{
    SPWebCollection collWebsites = oWebsite.Webs;
    SPUserCollection collUsers = oWebsite.Users;

    foreach (SPUser oUser in collUsers)
    {
        foreach (SPWeb oWebsiteCurrent in collWebsites)
        {
            SPRole oRole = oWebsite.Roles["Role_Name"];
            oRole.AddUser(oUser);
            oWebsiteCurrent.Dispose();
        }
    }
}

Примечание

Некоторые объекты реализуют интерфейс IDisposable и следует избегать сохранения этих объектов в памяти, после они больше не нужны. Disposing Objectsсведения о рекомендованные методы программирования, см.

Потокобезопасность

Любые общедоступные элементы static (Shared в Visual Basic) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.

См. также

Справочные материалы

Элементы SPRoleCollection

Пространство имен Microsoft.SharePoint