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


Класс SPPermissionCollection

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

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

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

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

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

Синтаксис

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

Замечания

Свойство Permissions класса или SPList , или SPWeb для возврата коллекции разрешений для списка или сайта. Чтобы создать разрешение, используйте метод SPPermissionCollectionили Add , или AddCollection .

Используйте индексатор для получения одного разрешения из коллекции. Например если коллекция присваивается переменной с именем collPermissions, используйтеindexcollPermissions[] в C# илиindexcollPermissions() в Visual Basic, где index является индексом разрешения в коллекции или объект SPMember для пользователя или группы, имеющей разрешение для списка или сайта.

Примеры

В следующем примере кода используется класс SPPermissionCollection для отображения имени и разрешения для каждого пользователя, имеющего доступ к указанному списку. В примере выполняется итерация через все пользователи сайта и все разрешения для списка; Если идентификатор пользователя соответствует идентификатор элемента списка разрешений, отображается информация для пользователя.

В этом примере требуется директивы using (Imports в Visual Basic) для [Microsoft.SharePoint] и [Microsoft.SharePoint.Utilities] пространств имен.

Dim siteCollection As SPSite = SPContext.Current.Site
Dim site As SPWeb = siteCollection.AllWebs("Site_Name")
Dim list As SPList = site.Lists("List_Name")
Dim perms As SPPermissionCollection = list.Permissions
Dim users As SPUserCollection = site.Users

Dim user As SPUser

For Each user In  users

    Dim perm As SPPermission

    For Each perm In  perms

        If user.ID = perm.Member.ID Then

            Response.Write("User: " & SPEncode.HtmlEncode(user.Name) _
                & " Permissions: " & perm.PermissionMask.ToString() 
                & "<BR>")

        End If

    Next perm

Next user
SPSite oSiteCollection = SPContext.Current.Site;
using(SPWeb oWebsite = oSiteCollection.AllWebs["Site_Name"])
{
    SPList oList = oWebsite.Lists["List_Name"];
    SPPermissionCollection collPermissions = oList.Permissions;
    SPUserCollection collUsers = oWebsite.Users;

    foreach (SPUser oUser in collUsers)
    {

        foreach (SPPermission oPermission in collPermissions)
        {

            if (oUser.ID == oPermission.Member.ID)
            {
                 Response.Write("User: " + 
                    SPEncode.HtmlEncode(oUser.Name) + 
                    " Permissions: " +   
                    oPermission.PermissionMask.ToString() + 
                    "<BR>");
            }
        }
    }
}

Примечание

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

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

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

См. также

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

Элементы SPPermissionCollection

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