Anvisningar: Använda rollprovidern ASP.NET med en tjänst
Den ASP.NET rollprovidern (tillsammans med ASP.NET-medlemskapsprovidern) är en funktion som gör det möjligt för ASP.NET utvecklare att skapa webbplatser som gör det möjligt för användare att skapa ett konto med en webbplats och tilldelas roller i auktoriseringssyfte. Med den här funktionen kan alla användare upprätta ett konto med webbplatsen och logga in för exklusiv åtkomst till webbplatsen och dess tjänster. Detta står i kontrast till Windows-säkerhet, vilket kräver att användare har konton i en Windows-domän. I stället kan alla användare som anger sina autentiseringsuppgifter (kombinationen användarnamn/lösenord) använda webbplatsen och dess tjänster.
Ett exempelprogram finns i Medlemskap och rollprovider. Mer information om funktionen ASP.NET medlemskapsprovider finns i Så här använder du ASP.NET-medlemskapsprovidern.
Rollproviderfunktionen använder en SQL Server-databas för att lagra användarinformation. Utvecklare av Windows Communication Foundation (WCF) kan dra nytta av dessa funktioner i säkerhetssyfte. När de är integrerade i ett WCF-program måste användarna ange en kombination av användarnamn/lösenord till WCF-klientprogrammet. Om du vill göra det möjligt för WCF att använda databasen måste du skapa en instans av ServiceAuthorizationBehavior klassen, ange dess PrincipalPermissionMode egenskap till UseAspNetRolesoch lägga till instansen i samlingen med beteenden till ServiceHost den som är värd för tjänsten.
Konfigurera rollprovidern
Under elementet
<system.web>
i filen Web.config lägger du till ett<roleManager>
element och anger dessenabled
attribut tilltrue
.Ange attributet
defaultProvider
tillSqlRoleProvider
.Lägg till ett
<providers>
element som underordnat<roleManager>
element.Som underordnad elementet
<providers>
lägger du till ett<add>
element med följande attribut inställda på lämpliga värden:name
,type
,connectionStringName
ochapplicationName
, enligt följande exempel.<!-- 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>
Konfigurera tjänsten för att använda rollprovidern
I filen Web.config lägger du till ett system.serviceModel-element>.<
Lägg till ett <beteendeelement> i elementet
<system.ServiceModel>
.Lägg till en serviceBehaviors> i -elementet
<behaviors>
.<Lägg till ett <beteendeelement> och ange
name
attributet till ett lämpligt värde.Lägg till en serviceAuthorization> i elementet
<behavior>
.<Ange attributet
principalPermissionMode
tillUseAspNetRoles
.Ange attributet
roleProviderName
tillSqlRoleProvider
. I följande exempel visas ett fragment av konfigurationen.<behaviors> <serviceBehaviors> <behavior name="CalculatorServiceBehavior"> <serviceAuthorization principalPermissionMode ="UseAspNetRoles" roleProviderName ="SqlRoleProvider" /> </behavior> </serviceBehaviors> </behaviors>