Dela via


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

  1. Under elementet <system.web> i filen Web.config lägger du till ett <roleManager> element och anger dess enabled attribut till true.

  2. Ange attributet defaultProvider till SqlRoleProvider.

  3. Lägg till ett <providers> element som underordnat <roleManager> element.

  4. Som underordnad elementet <providers> lägger du till ett <add> element med följande attribut inställda på lämpliga värden: name, type, connectionStringNameoch applicationName, 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

  1. I filen Web.config lägger du till ett system.serviceModel-element>.<

  2. Lägg till ett <beteendeelement> i elementet <system.ServiceModel> .

  3. Lägg till en serviceBehaviors> i -elementet<behaviors>.<

  4. Lägg till ett <beteendeelement> och ange name attributet till ett lämpligt värde.

  5. Lägg till en serviceAuthorization> i elementet<behavior>.<

  6. Ange attributet principalPermissionMode till UseAspNetRoles.

  7. Ange attributet roleProviderName till SqlRoleProvider. I följande exempel visas ett fragment av konfigurationen.

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

Se även