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
Fügen Sie in der Datei „Web.config“ unter dem Element
<system.web>
ein<roleManager>
-Element hinzu, und legen Sie dessen Attributenabled
auftrue
fest.Legen Sie das
defaultProvider
-Attribut aufSqlRoleProvider
fest.Fügen Sie dem Element
<roleManager>
ein<providers>
-Element als untergeordnetes Element hinzu.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
undapplicationName
, 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
Fügen Sie in der Datei „Web.config“ ein <system.serviceModel>-Element hinzu.
Fügen Sie dem Element
<system.ServiceModel>
ein <behaviors>-Element hinzu.Fügen Sie dem Element
<behaviors>
ein <serviceBehaviors>-Element hinzu.Fügen Sie ein <behavior>-Element hinzu, und legen Sie das Attribut
name
auf einen geeigneten Wert fest.Fügen Sie dem Element
<behavior>
ein <serviceAuthorization>-Element hinzu.Legen Sie das
principalPermissionMode
-Attribut aufUseAspNetRoles
fest.Legen Sie das
roleProviderName
-Attribut aufSqlRoleProvider
fest. Im folgenden Beispiel wird ein Fragment der Konfiguration dargestellt.<behaviors> <serviceBehaviors> <behavior name="CalculatorServiceBehavior"> <serviceAuthorization principalPermissionMode ="UseAspNetRoles" roleProviderName ="SqlRoleProvider" /> </behavior> </serviceBehaviors> </behaviors>