Clase SPPermissionCollection

NOTA: esta API está ahora obsoleta.

Usar las nuevas clases SPRoleDefinition y SPRoleAssignment en su lugar, para definir las funciones y asignar usuarios a ellos. Para obtener más información, vea Changes in the Authorization Object Model. (En Windows SharePoint Services 2.0, SPRole representa una colección de objetos de SPPermission y se mantiene por compatibilidad con versiones anteriores.)

Jerarquía de la herencia

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

Espacio de nombres:  Microsoft.SharePoint
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

'Declaración
<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

Comentarios

Utilice la propiedad Permissions de clase de la SPList o SPWeb para devolver el conjunto de permisos para una lista o un sitio. Para crear un permiso, use la Add o AddCollection método SPPermissionCollection.

Utilice un indizador para devolver un solo permiso de la colección. Por ejemplo, si la colección se asigna a una variable denominada collPermissions, use collPermissions[index] en C# o collPermissions(index) en Visual Basic, donde index es el número de índice del permiso en la colección o el objeto de SPMember para un usuario o grupo que tiene el permiso de la lista o sitio.

Ejemplos

En el ejemplo de código siguiente se usa la clase SPPermissionCollection para mostrar el nombre y los permisos de cada usuario que tiene acceso a una lista especificada. En el ejemplo se recorre en iteración a través de todos los usuarios de un sitio y todos los permisos para una lista; Si un identificador de usuario coincide con el identificador de miembro de un permiso de la lista, se muestra información para el usuario.

En este ejemplo se requieren using directivas (Imports en Visual Basic) para los [Microsoft.SharePoint] y [Microsoft.SharePoint.Utilities] espacios de nombres.

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

Nota

Determinados objetos implementan la interfaz de IDisposable y, a continuación, se debe evitar la conservación de estos objetos en la memoria que ya no se necesitan. Para obtener información acerca de buenas prácticas de codificación, vea Disposing Objects.

Seguridad para subprocesos

Los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para los subprocesos.

Vea también

Referencia

Miembros SPPermissionCollection

Espacio de nombres Microsoft.SharePoint