Vorgehensweise: Verwenden des Rollenanbieters für den ASP.NET bei einem Dienst

Der ASP.NET-Rollenanbieter (zusammen mit dem ASP.NET-Mitgliedschaftsanbieter) ist ein Feature für ASP.NET-Entwickler zum Erstellen von Websites, über die Benutzer ein Konto auf einer Website erstellen können. Außerdem können ihnen Rollen für Autorisierungszwecke zugewiesen werden. Jeder Benutzer kann mit dieser Funktion ein Konto auf dieser Site erstellen und sich für den exklusiven Zugriff auf diese Site und ihre Dienste anmelden. Dies steht im Gegensatz zur Windows-Sicherheit, bei der die Benutzer über Konten in einer Windows-Domäne verfügen müssen. Stattdessen kann jeder Benutzer, der seine Anmeldeinformationen (eine Kombination aus Benutzername/Kennwort) angibt, die Website und deren Dienste nutzen.

Eine Beispielanwendung finden Sie unter Mitgliedschafts- und Rollenanbieter. Weitere Informationen zum Feature ASP.NET-Mitgliedschaftsanbieter finden Sie unter Vorgehensweise: Verwenden des ASP.NET-Mitgliedschaftsanbieters.

Die Rollenanbieterfunktion verwendet eine SQL Server-Datenbank zum Speichern von Benutzerinformationen. Windows Communication Foundation (WCF)-Entwickler können diese Features für Sicherheitszwecke nutzen. Wenn sie in eine WCF-Anwendung integriert ist, müssen Benutzer eine Kombination aus Benutzername/Kennwort für die WCF-Clientanwendung bereitstellen. Damit WCF die Datenbank verwenden kann, müssen Sie eine Instanz der Klasse ServiceAuthorizationBehavior erstellen, deren Eigenschaft PrincipalPermissionMode auf UseAspNetRoles festlegen und die Instanz der Auflistung von Verhaltensweisen für den ServiceHost hinzufügen, der den Dienst hostet.

Konfigurieren des Rollenanbieters

  1. Fügen Sie in der Datei „Web.config“ unter dem Element <system.web> ein <roleManager>-Element hinzu, und legen Sie dessen Attribut enabled auf true fest.

  2. Legen Sie das defaultProvider-Attribut auf SqlRoleProvider fest.

  3. Fügen Sie dem Element <roleManager> ein <providers>-Element als untergeordnetes Element hinzu.

  4. Fügen Sie dem Element <providers> ein <add>-Element als untergeordnetes Element hinzu, wobei Sie die folgenden Attribute auf geeignete Werte festgelegen: name, type, connectionStringName und applicationName, wie im folgenden Beispiel gezeigt wird.

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

Konfigurieren des Diensts zur Verwendung des Rollenanbieters

  1. Fügen Sie in der Datei „Web.config“ ein <system.serviceModel>-Element hinzu.

  2. Fügen Sie dem Element <system.ServiceModel> ein <behaviors>-Element hinzu.

  3. Fügen Sie dem Element <behaviors> ein <serviceBehaviors>-Element hinzu.

  4. Fügen Sie ein <behavior>-Element hinzu, und legen Sie das Attribut name auf einen geeigneten Wert fest.

  5. Fügen Sie dem Element <behavior> ein <serviceAuthorization>-Element hinzu.

  6. Legen Sie das principalPermissionMode-Attribut auf UseAspNetRoles fest.

  7. Legen Sie das roleProviderName-Attribut auf SqlRoleProvider fest. Im folgenden Beispiel wird ein Fragment der Konfiguration dargestellt.

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

Siehe auch