Partager via


SPRoleCollection - Classe

Remarque : cette API est désormais obsolète.

Utilisez à la place, les nouvelles classes SPRoleDefinition et SPRoleAssignment pour définir des rôles et de leur affecter des utilisateurs. Pour plus d'informations, consultez Changes in the Authorization Object Model. (Dans Windows SharePoint Services 2.0, SPRoleCollection représenté une collection d'objets SPRole et est conservé pour la compatibilité descendante).

Hiérarchie d’héritage

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

Espace de noms :  Microsoft.SharePoint
Assembly :  Microsoft.SharePoint (dans Microsoft.SharePoint.dll)

Syntaxe

'Déclaration
<ObsoleteAttribute("Use the SPRoleDefinitionCollection class instead")> _
Public Class SPRoleCollection _
    Inherits SPBaseCollection
'Utilisation
Dim instance As SPRoleCollection
[ObsoleteAttribute("Use the SPRoleDefinitionCollection class instead")]
public class SPRoleCollection : SPBaseCollection

Remarques

Utilisez la propriété Roles de la classe SPUser, SPGroupou SPWeb pour renvoyer un objet SPRoleCollection qui représente la collection de rôles d'un utilisateur, un groupe ou un site Web. Pour renvoyer un seul rôle à partir de la collection, utilisez un indexeur. Par exemple, si la collection est assignée à une variable nommée collRoles, utilisez collRoles[index] dans C# ou collRoles(index) dans Visual Basic, où index est le numéro d'index du rôle dans la collection ou le nom complet du groupe de sites.

Exemples

L'exemple de code suivant ajoute tous les utilisateurs d'un site à un rôle spécifié pour tous les sous-sites sous le site.

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

Notes

Certains objets implémentent l'interface IDisposable , et vous devez éviter de conserver ces objets dans la mémoire après que qu'ils ne sont plus nécessaires. Pour plus d'informations sur les bonnes pratiques de codage, consultez Disposing Objects.

Cohérence de thread

Tous les membres statique (Partagé dans Visual Basic)s publics de ce type sont thread-safe. Cela n’est pas garanti pour les membres d’instance.

Voir aussi

Référence

SPRoleCollection - Membres

Microsoft.SharePoint - Espace de noms