Delen via


Procedure: De ASP.NET-rolprovider gebruiken met een service

De ASP.NET rolprovider (in combinatie met de ASP.NET lidmaatschapsprovider) is een functie waarmee ASP.NET ontwikkelaars websites kunnen maken waarmee gebruikers een account met een site kunnen maken en rollen kunnen toewijzen voor autorisatiedoeleinden. Met deze functie kan elke gebruiker een account met de site tot stand brengen en zich aanmelden voor exclusieve toegang tot de site en de bijbehorende services. Dit is in tegenstelling tot Windows-beveiliging, waarvoor gebruikers accounts in een Windows-domein moeten hebben. In plaats daarvan kan elke gebruiker die zijn referenties levert (de combinatie van gebruikersnaam/wachtwoord) de site en de bijbehorende services gebruiken.

Zie Lidmaatschaps- en rolprovider voor een voorbeeldtoepassing. Zie De ASP.NET lidmaatschapsprovider gebruiken voor meer informatie over de functie ASP.NET lidmaatschapsprovider.

De functie rolprovider maakt gebruik van een SQL Server-database om gebruikersgegevens op te slaan. WcF-ontwikkelaars (Windows Communication Foundation) kunnen profiteren van deze functies voor beveiligingsdoeleinden. Wanneer deze is geïntegreerd in een WCF-toepassing, moeten gebruikers een combinatie van gebruikersnaam en wachtwoord opgeven voor de WCF-clienttoepassing. Als u WCF wilt inschakelen voor het gebruik van de database, moet u een exemplaar van de klasse maken, de ServiceAuthorizationBehavior eigenschap ervan instellen PrincipalPermissionMode op en het exemplaar toevoegen aan de verzameling gedragingen ServiceHost die als host fungeert UseAspNetRolesvoor de service.

De rolprovider configureren

  1. Voeg in het bestand Web.config onder het <system.web> element een <roleManager> element toe en stel het kenmerk in enabled op true.

  2. Stel het defaultProvider kenmerk in op SqlRoleProvider.

  3. Voeg als onderliggend <roleManager> element een <providers> element toe.

  4. Voeg als onderliggend <providers> element een <add> element toe met de volgende kenmerken die zijn ingesteld op de juiste waarden: name, type, connectionStringNameen applicationName, zoals wordt weergegeven in het volgende voorbeeld.

    <!-- 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>
    

De service configureren voor het gebruik van de rolprovider

  1. Voeg in het web.config-bestand een <system.serviceModel-element> toe.

  2. Voeg een <gedragselement> toe aan het <system.ServiceModel> element.

  3. Voeg een <serviceBehaviors> toe aan het <behaviors> element.

  4. Voeg een <gedragselement> toe en stel het name kenmerk in op een geschikte waarde.

  5. Voeg een <serviceAuthorization> toe aan het <behavior> element.

  6. Stel het principalPermissionMode kenmerk in op UseAspNetRoles.

  7. Stel het roleProviderName kenmerk in op SqlRoleProvider. In het volgende voorbeeld ziet u een fragment van de configuratie.

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

Zie ook