Procédure : utiliser le fournisseur de rôle ASP.NET avec un service

Le fournisseur de rôles ASP.NET (conjointement avec le fournisseur d’appartenances ASP.NET) est une fonctionnalité qui permet aux développeurs ASP.NET de créer des sites web autorisant les utilisateurs à créer un compte avec un site et à être affectés d’un rôle à des fins d’autorisation. Grâce à cette fonctionnalité, les utilisateurs peuvent établir un compte avec le site et disposer d’un accès exclusif à celui-ci et à ses services. Cette approche diffère de la sécurité Windows, qui requiert que les utilisateurs disposent de comptes dans un domaine Windows. Au lieu de cela, tout utilisateur qui fournit ses informations d’identification (combinaison nom d’utilisateur/mot de passe) peut utiliser le site et ses services.

Pour obtenir un exemple d’application, consultez Fournisseur d’appartenances et de rôles. Pour plus d’informations sur la fonctionnalité de fournisseur d’appartenances ASP.NET, consultez Guide pratique pour utiliser le fournisseur d’appartenances ASP.NET.

La fonctionnalité de fournisseur de rôle utilise une base de données SQL Server pour stocker des informations utilisateur. Les développeurs Windows Communication Foundation (WCF) peuvent tirer parti de ces fonctionnalités à des fins de sécurité. En cas d’intégration dans une application WCF, les utilisateurs doivent fournir une combinaison nom d’utilisateur/mot de passe à l’application cliente WCF. Pour permettre à WCF d’utiliser la base de données, vous devez créer une instance de la classe ServiceAuthorizationBehavior, affectez à sa propriété PrincipalPermissionMode la valeur UseAspNetRoles, puis ajoutez l’instance à la collection de comportements dans le ServiceHost qui héberge le service.

Configurer le fournisseur de rôles

  1. Dans le fichier Web.config, sous l’élément<system.web>, ajoutez un <roleManager> et définissez son attribut enabled sur true.

  2. Affectez à l'attribut defaultProvider la valeur SqlRoleProvider.

  3. Ajoutez un élément <providers> en tant qu’enfant de l’élément <roleManager>.

  4. Ajoutez un élément <add> en tant qu’enfant de l’élément <providers>, avec les attributs suivants définis sur les valeurs appropriées : name, type, connectionStringName et applicationName, comme illustré dans l’exemple suivant.

    <!-- Configure the Sql Role Provider. -->  
    <roleManager enabled ="true"
     defaultProvider ="SqlRoleProvider" >  
       <providers>  
         <add name ="SqlRoleProvider"
           type="System.Web.Security.SqlRoleProvider"
           connectionStringName="SqlConn"
           applicationName="MembershipAndRoleProviderSample"/>  
       </providers>  
    </roleManager>  
    

Configurer le service pour utiliser le fournisseur de rôles

  1. Dans le fichier Web.config, ajoutez un élément <system.serviceModel>.

  2. Ajoutez un élément <behaviors> à l’élément <system.ServiceModel>.

  3. Ajoutez un élément <serviceBehaviors> à l’élément <behaviors>.

  4. Ajoutez un élément <behavior>, puis affectez à l’attribut name une valeur adéquate.

  5. Ajoutez un élément <serviceAuthorization> à l’élément <behavior>.

  6. Affectez à l'attribut principalPermissionMode la valeur UseAspNetRoles.

  7. Affectez à l'attribut roleProviderName la valeur SqlRoleProvider. L'exemple suivant présente un fragment de la configuration.

    <behaviors>  
     <serviceBehaviors>  
      <behavior name="CalculatorServiceBehavior">  
       <serviceAuthorization principalPermissionMode ="UseAspNetRoles"  
                             roleProviderName ="SqlRoleProvider" />  
      </behavior>  
     </serviceBehaviors>  
    </behaviors>  
    

Voir aussi