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.