Compartilhar via


SPPermissionCollection class

NOTE: This API is now obsolete.

Use em vez disso, as novas classes SPRoleDefinition e SPRoleAssignment para definir funções e atribuir usuários a elas. Para obter mais informações, consulte Changes in the Authorization Object Model. (Em Windows SharePoint Services 2,0, o SPRole representado uma coleção de objetos SPPermission e é mantido para compatibilidade com versões anteriores.)

Inheritance hierarchy

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

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaração
<ObsoleteAttribute("Use the SPRoleAssignmentCollection class instead")> _
Public Class SPPermissionCollection _
    Inherits SPBaseCollection
'Uso
Dim instance As SPPermissionCollection
[ObsoleteAttribute("Use the SPRoleAssignmentCollection class instead")]
public class SPPermissionCollection : SPBaseCollection

Comentários

Use a propriedade Permissions da classe a SPList ou SPWeb para retornar a coleção de permissões para um site ou uma lista. Para criar uma permissão, use o Add ou o AddCollection método SPPermissionCollection.

Use um indexador para retornar uma única permissão da coleção. Por exemplo, se a coleção for atribuída a uma variável chamada collPermissions, use collPermissions[index] em C# ou deindexde collPermissions() no Visual Basic, onde index é o número de índice da permissão da coleção ou o objeto SPMember para um usuário ou grupo que tenha a permissão para a lista ou o site.

Examples

O exemplo de código a seguir usa a classe SPPermissionCollection para exibir o nome e as permissões para cada usuário que tem acesso a uma lista especificada. O exemplo itera por meio de todos os usuários de um site e todas as permissões para uma lista; Se uma ID do usuário coincidir com a identificação de membro de uma permissão de lista, informações do usuário são exibidas.

Este exemplo requer diretivas de using (Imports no Visual Basic) para os namespaces de**[Microsoft.SharePoint.Utilities]** de [Microsoft.SharePoint] e .

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>");
            }
        }
    }
}

Dica

Determinados objetos implementam a interface IDisposable , e você deve evitar reter esses objetos na memória depois que eles não são mais necessários. Para obter informações sobre boas práticas de codificação, consulte Disposing Objects.

Thread safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Ver também

Referência

SPPermissionCollection members

Microsoft.SharePoint namespace