Roles Classe

Définition

Gère l'appartenance de l'utilisateur aux rôles pour vérifier ses autorisations dans une application ASP.NET. Cette classe ne peut pas être héritée.

public ref class Roles abstract sealed
public static class Roles
type Roles = class
Public Class Roles
Héritage
Roles

Exemples

l’exemple suivant montre le fichier Web.config pour une application configurée pour utiliser à la fois l’appartenance ASP.NET et les rôles ASP.NET et pour utiliser le SqlRoleProvider pour stocker les informations d’appartenance et de rôle dans une base de données SQL Server. Les utilisateurs sont authentifiés avec l’authentification par formulaire et seuls les utilisateurs du rôle administrateurs sont autorisés à accéder à l’application.

<configuration>
  <connectionStrings>
    <add name="SqlServices" connectionString="Data Source=localhost;Initial Catalog=aspnetdb;Integrated Security=SSPI;" />
  </connectionStrings>

  <system.web>
    <authentication mode="Forms" >
      <forms loginUrl="login.aspx"
      name=".ASPXFORMSAUTH" />
    </authentication>

    <authorization>
      <deny users="?" />
      <allow roles="Administrators" />
      <deny users="*" />
    </authorization>

    <membership defaultProvider="AspNetSqlProvider" userIsOnlineTimeWindow="15">
    </membership>

    <roleManager defaultProvider="SqlProvider"
      enabled="true"
      cacheRolesInCookie="true"
      cookieName=".ASPROLES"
      cookieTimeout="30"
      cookiePath="/"
      cookieRequireSSL="true"
      cookieSlidingExpiration="true"
      cookieProtection="All" >

      <providers>
        <clear />
        <add
          name="SqlProvider"
          type="System.Web.Security.SqlRoleProvider"
          connectionStringName="SqlServices"
          applicationName="SampleApplication" />
        </providers>

    </roleManager>
  </system.web>
</configuration>

L’exemple de code suivant vérifie par programme si l’utilisateur connecté est dans le rôle Administrateurs avant d’autoriser l’utilisateur à afficher les rôles d’autres utilisateurs.

Remarques

ASP.NET la gestion des rôles vous permet de gérer les autorisations de votre application en fonction des groupes d’utilisateurs, appelés rôles. En affectant des utilisateurs à des rôles, vous pouvez contrôler l’accès aux différentes parties ou fonctionnalités de votre application Web en fonction de leur rôle au lieu de, ou en plus de, en spécifiant une autorisation basée sur le nom d’utilisateur. Par exemple, une application d’employé peut avoir des rôles tels que les responsables, les employés, les directeurs, etc., où des privilèges différents sont spécifiés pour chaque rôle.

Les utilisateurs peuvent appartenir à plusieurs rôles. Par exemple, si votre site est un forum de discussion, certains utilisateurs peuvent se trouver dans le rôle des membres et des modérateurs. Vous pouvez définir chaque rôle avec des privilèges différents sur le site, et un utilisateur qui se trouve dans les deux rôles aura alors les deux ensembles de privilèges.

pour activer la gestion des rôles pour votre application ASP.NET, utilisez l’élément roleManager de la system.web section dans le fichier Web.config de votre application, comme illustré dans l’exemple suivant.

<configuration>
  <connectionStrings>
    <add name="SqlServices" connectionString="Data Source=localhost;Initial Catalog=aspnetdb;Integrated Security=SSPI;" />
  </connectionStrings>

  <system.web>
    <authentication mode="Forms" >
      <forms loginUrl="login.aspx"
      name=".ASPXFORMSAUTH" />
    </authentication>

  <roleManager defaultProvider="SqlProvider"
    enabled="true"
    cacheRolesInCookie="true"
    cookieName=".ASPROLES"
    cookieTimeout="30"
    cookiePath="/"
    cookieRequireSSL="false"
    cookieSlidingExpiration="true"
    cookieProtection="All" >
    <providers>
      <add
        name="SqlProvider"
        type="System.Web.Security.SqlRoleProvider"
        connectionStringName="SqlServices"
        applicationName="SampleApplication" />
      </providers>
    </roleManager>
  </system.web>
</configuration>

Vous pouvez spécifier des règles d’autorisation dans le fichier de configuration pour votre application Web ou par programme dans votre code. Par exemple, la section d’autorisation suivante d’un fichier Web.config nécessite que les utilisateurs se connectent (en refusant des utilisateurs anonymes), puis autorise uniquement l’accès aux utilisateurs du rôle Administrateurs.

<authorization>
  <deny users="?" />
  <allow roles="Administrators" />
  <deny users="*" />
</authorization>

Si vous utilisez la authorization section dans le fichier Web.config de votre application pour spécifier l’autorisation basée sur les rôles, les utilisateurs de votre application doivent fournir une identité d’utilisateur authentifié. vous pouvez authentifier les utilisateurs à l’aide de l’authentification Windows ou par formulaire. Les utilisateurs anonymes ne peuvent pas être attribués à un rôle. les rôles peuvent être utilisés indépendamment des classes ASP.NET, ou conjointement avec celles-ci Membership .

Pour vérifier l’appartenance au rôle par programme, vous pouvez utiliser la Roles classe ou la Page.User propriété avec la IsUserInRole méthode, ou vous pouvez utiliser la Page.User propriété avec la IPrincipal.IsInRole méthode. Pour obtenir un exemple de code qui vérifie l’appartenance à un rôle par programme, consultez la section exemple de cette rubrique.

La Roles classe vous permet également de créer et de supprimer des rôles, ainsi que d’ajouter ou de supprimer des utilisateurs dans des rôles.

Notes

Si vous avez configuré votre application pour utiliser la WindowsTokenRoleProvider classe, vous ne pouvez pas modifier les rôles ou l’appartenance à un rôle. la WindowsTokenRoleProvider classe vérifie l’appartenance aux groupes de sécurité Windows uniquement. dans ce cas, vous devez utiliser Windows gestion de compte d’utilisateur plutôt que ASP.NET rôles pour créer et supprimer des groupes et gérer l’appartenance à un groupe.

Vous pouvez stocker des informations de rôle dans plusieurs sources de données.

  • vous pouvez utiliser la WindowsTokenRoleProvider classe pour récupérer des informations de rôle en fonction de l’appartenance à des groupes de Windows.

  • vous pouvez stocker des informations de rôle dans une base de données SQL Server à l’aide de la SqlRoleProvider classe.

  • si vous disposez d’informations de rôle existantes, ou si vous souhaitez stocker des informations de rôle dans et récupérer des informations de rôle à partir d’une source de données autre que Windows, un magasin d’autorisations ou SQL Server, vous pouvez implémenter un fournisseur de rôles personnalisé en créant une classe qui hérite de la RoleProvider classe abstraite. Pour plus d’informations, consultez implémentation d’un fournisseur de rôles.

Si le navigateur d’un utilisateur accepte les cookies, vous pouvez stocker les informations de rôle de cet utilisateur dans un cookie sur l’ordinateur de l’utilisateur. à chaque demande de page, ASP.NET lit les informations de rôle de cet utilisateur à partir du cookie. Cela peut améliorer les performances de l’application en réduisant la quantité de communication requise avec la source de données pour récupérer les informations de rôle. si les informations de rôle d’un utilisateur sont trop longues pour être stockées dans un cookie, ASP.NET stocke uniquement les informations de rôle les plus récemment utilisées dans le cookie, puis recherche les informations de rôle supplémentaires dans la source de données selon les besoins. Si le navigateur de l’utilisateur ne prend pas en charge les cookies ou les cookies, les informations de rôle ne sont pas mises en cache dans un cookie.

vous pouvez améliorer la fiabilité des noms de rôles mis en cache dans un cookie en spécifiant une CookieProtectionValue propriété lorsque vous configurez ASP.NET rôles. La valeur par défaut CookieProtectionValue est All , qui chiffre les noms de rôles dans le cookie et vérifie que le contenu du cookie n’a pas été modifié.

Propriétés

ApplicationName

Obtient ou définit le nom de l'application pour laquelle stocker ou récupérer des informations de rôle.

CacheRolesInCookie

Obtient ou définit une valeur indiquant si les rôles de l'utilisateur actuel sont mis en cache dans un cookie.

CookieName

Obtient le nom du cookie contenant les noms de rôles en cache.

CookiePath

Obtient le chemin d’accès pour le cookie contenant les noms de rôles en cache.

CookieProtectionValue

Obtient une valeur indiquant comment les noms de rôles mis en cache dans un cookie sont protégés.

CookieRequireSSL

Obtient une valeur indiquant si le cookie contenant les noms de rôles nécessite une connexion SSL pour être retourné au serveur.

CookieSlidingExpiration

Indique si la date et l'heure d'expiration du cookie contenant les noms de rôles seront périodiquement réinitialisées.

CookieTimeout

Obtient le nombre de minutes avant l'expiration du cookie de rôles.

CreatePersistentCookie

Obtient une valeur indiquant si le cookie des noms de rôles se fonde sur la session ou est persistant.

Domain

Obtient la valeur du domaine du cookie de noms de rôles.

Enabled

Obtient ou définit une valeur indiquant si la gestion des rôles est activée pour l'application Web actuelle.

MaxCachedResults

Obtient le nombre maximal de noms de rôles à mettre en cache pour un utilisateur.

Provider

Obtient le fournisseur de rôle par défaut de l'application.

Providers

Obtient une collection de fournisseurs de rôles pour l’application ASP.NET.

Méthodes

AddUsersToRole(String[], String)

Ajoute les utilisateurs spécifiés au rôle spécifié.

AddUsersToRoles(String[], String[])

Ajoute les utilisateurs spécifiés aux rôles spécifiés.

AddUserToRole(String, String)

Ajoute l'utilisateur spécifié au rôle spécifié.

AddUserToRoles(String, String[])

Ajoute l'utilisateur spécifié aux rôles spécifiés.

CreateRole(String)

Ajoute un nouveau rôle à la source de données.

DeleteCookie()

Supprime le cookie contenant les noms de rôles en cache.

DeleteRole(String)

Supprime un rôle de la source de données.

DeleteRole(String, Boolean)

Supprime un rôle de la source de données.

FindUsersInRole(String, String)

Obtient une liste des utilisateurs figurant dans un rôle spécifié contenant le nom d'utilisateur correspondant au nom spécifié.

GetAllRoles()

Obtient la liste de tous les rôles pour l'application.

GetRolesForUser()

Obtient une liste des rôles dans lesquels figure l'utilisateur actuellement connecté.

GetRolesForUser(String)

Obtient une liste des rôles dans lesquels figure l'utilisateur.

GetUsersInRole(String)

Obtient une liste des utilisateurs du rôle spécifié.

IsUserInRole(String)

Obtient une valeur indiquant si l'utilisateur actuellement connecté figure dans le rôle spécifié. L’API est censée être appelée uniquement dans le contexte d’un thread de requête ASP.NET, et dans ce cas d’utilisation autorisée elle est sécurisée (thread-safe).

IsUserInRole(String, String)

Obtient une valeur indiquant si l'utilisateur spécifié figure dans le rôle spécifié. L’API est censée être appelée uniquement dans le contexte d’un thread de requête ASP.NET, et dans ce cas d’utilisation autorisée elle est sécurisée (thread-safe).

RemoveUserFromRole(String, String)

Supprime l'utilisateur spécifié du rôle spécifié.

RemoveUserFromRoles(String, String[])

Supprime l'utilisateur spécifié des rôles spécifiés.

RemoveUsersFromRole(String[], String)

Supprime les utilisateurs spécifiés du rôle spécifié.

RemoveUsersFromRoles(String[], String[])

Supprime les noms d'utilisateurs spécifiés des rôles spécifiés.

RoleExists(String)

Obtient une valeur qui indique si le nom de rôle spécifié existe déjà dans la source de données du rôle.

S’applique à

Voir aussi