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
Voeg in het bestand Web.config onder het
<system.web>
element een<roleManager>
element toe en stel het kenmerk inenabled
optrue
.Stel het
defaultProvider
kenmerk in opSqlRoleProvider
.Voeg als onderliggend
<roleManager>
element een<providers>
element toe.Voeg als onderliggend
<providers>
element een<add>
element toe met de volgende kenmerken die zijn ingesteld op de juiste waarden:name
,type
,connectionStringName
enapplicationName
, 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
Voeg in het web.config-bestand een <system.serviceModel-element> toe.
Voeg een <gedragselement> toe aan het
<system.ServiceModel>
element.Voeg een <serviceBehaviors> toe aan het
<behaviors>
element.Voeg een <gedragselement> toe en stel het
name
kenmerk in op een geschikte waarde.Voeg een <serviceAuthorization> toe aan het
<behavior>
element.Stel het
principalPermissionMode
kenmerk in opUseAspNetRoles
.Stel het
roleProviderName
kenmerk in opSqlRoleProvider
. In het volgende voorbeeld ziet u een fragment van de configuratie.<behaviors> <serviceBehaviors> <behavior name="CalculatorServiceBehavior"> <serviceAuthorization principalPermissionMode ="UseAspNetRoles" roleProviderName ="SqlRoleProvider" /> </behavior> </serviceBehaviors> </behaviors>