Freigeben über


SqlRoleProvider Klasse

Definition

Verwaltet die Speicherung der Rollenmitgliedschaftsinformationen für eine ASP.NET-Anwendung in einer SQL Server-Datenbank.

public ref class SqlRoleProvider : System::Web::Security::RoleProvider
public class SqlRoleProvider : System.Web.Security.RoleProvider
type SqlRoleProvider = class
    inherit RoleProvider
Public Class SqlRoleProvider
Inherits RoleProvider
Vererbung
SqlRoleProvider

Beispiele

Das folgende Beispiel zeigt die Web.config-Datei für eine ASP.NET-Anwendung, die für die Verwendung eines SqlRoleProvider -Objekts und der konfiguriert ist SqlMembershipProvider. Das authorization -Element ist so konfiguriert, dass nur authentifizierten Benutzern in der Rolle "Administratoren" der Zugriff gewährt wird.

<configuration>
  <connectionStrings>
    <add name="SqlServices" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
  </connectionStrings>
  <system.web>
    <authentication mode="Forms" >
      <forms loginUrl="logincs.aspx"
      name=".ASPXFORMSAUTH" />
    </authentication>
    <authorization>
      <deny users="?" />
      <allow roles="Administrators" />
      <deny users="*" />
    </authorization>
    <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
      <providers>
        <add
          name="SqlProvider"
          type="System.Web.Security.SqlMembershipProvider"
          connectionStringName="SqlServices"
          enablePasswordRetrieval="false"
          enablePasswordReset="false"
          requiresQuestionAndAnswer="false"
          passwordFormat="Hashed"
          applicationName="SampleApplication" />
      </providers>
    </membership>
    <roleManager defaultProvider="SqlProvider"
      enabled="true"
      cacheRolesInCookie="true"
      cookieName=".ASPROLES"
      cookieTimeout="30"
      cookiePath="/"
      cookieRequireSSL="true"
      cookieSlidingExpiration="true"
      cookieProtection="All" >
      <providers>
        <add
          name="SqlProvider"
          type="System.Web.Security.SqlRoleProvider"
          connectionStringName="SqlServices"
          applicationName="SampleApplication" />
      </providers>
    </roleManager>
  </system.web>
</configuration>

Hinweise

Diese Klasse wird von den Roles Klassen und RolePrincipal verwendet, um Rollenverwaltungsdienste für eine ASP.NET Anwendung mithilfe einer SQL Server-Datenbank bereitzustellen. Sie können die Rollenverwaltung verwenden, um verschiedene Autorisierungsebenen für Ihre Anwendung anzugeben.

Um die SqlRoleProvider -Klasse verwenden zu können, müssen Sie zuerst die SQL Server-Datenbank erstellen, die SqlRoleProvidervon verwendet wird. Um die von der SqlRoleProvider -Klasse verwendete Datenbank zu erstellen, führen Sie die aspnet_regsql.exe ausführbare Datei aus, die sich im Ordner C:\WINDOWS\Microsoft.NET\Framework\ versionNumber befindet, aspnet_regsql.exe -Arund geben Sie die -Ar Option an (z. B. ). Die erstellte Datenbank heißt Aspnetdb. Alternativ können Sie aspnet_regsql.exe ausführen, um den GUI-Konfigurationsmodus zu pullen und alle ASP.NET Features zu konfigurieren.

Wenn der Rollenanbieter mit einer Verbindungszeichenfolge konfiguriert ist, die integrierte Sicherheit verwendet, muss das Prozesskonto der ASP.NET Anwendung über Berechtigungen zum Herstellen einer Verbindung mit der SQL Server-Datenbank verfügen.

Die Machine.config-Datei wird mit einer SqlRoleProvider Instanz namens AspNetSqlProvider konfiguriert, die eine Verbindung mit sql Server auf dem lokalen Computer herstellt. Sie können diese Instanz des Anbieters verwenden oder eine eigene in der Web.config-Datei für Ihre ASP.NET-Anwendung angeben. Um die AspNetSqlProvider-Instanz zu verwenden, geben Sie AspNetSqlProvider als in defaultProvider Ihrer Konfiguration an.

Sie können konfigurieren, SqlRoleProvider um die gleichen Datenbank- und Benutzerinformationen wie die zu verwenden, SqlMembershipProvider um eine einzelne Datenbank für Authentifizierungs- und Autorisierungsinformationen zu verwenden. Um dieselbe Datenbank für Mitgliedschafts- und Rolleninformationen zu verwenden, führen Sie die ausführbare aspnet_regsql.exe aus, und installieren Sie das Mitgliedschaftsfeature. Geben Sie dann dieselbe Verbindungszeichenfolge in Ihrer Konfiguration sowohl für die SqlRoleProviderSqlMembershipProvider -Instanz als auch für die -Instanz an. Stellen Sie außerdem sicher, dass beide Anbieterinstanzen mit demselben ApplicationNamekonfiguriert sind.

Konstruktoren

SqlRoleProvider()

Erstellt eine Instanz der SqlRoleProvider-Klasse.

Eigenschaften

ApplicationName

Ruft den Namen der Anwendung ab, für die Rolleninformationen gespeichert und abgerufen werden sollen, oder legt diesen fest.

Description

Ruft eine kurze, benutzerfreundliche Beschreibung ab, die für die Anzeige in Verwaltungstools oder anderen Benutzeroberflächen geeignet ist.

(Geerbt von ProviderBase)
Name

Ruft den Anzeigennamen ab, der verwendet wird, um während der Konfiguration auf den Anbieter zu verweisen.

(Geerbt von ProviderBase)

Methoden

AddUsersToRoles(String[], String[])

Fügt jeder der angegebenen Rollen die angegebenen Benutzernamen hinzu.

CreateRole(String)

Fügt der Rollendatenbank eine neue Rolle hinzu.

DeleteRole(String, Boolean)

Entfernt eine Rolle aus der Rollendatenbank.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
FindUsersInRole(String, String)

Ruft ein Array von Benutzernamen in einer Rolle ab, die mit den angegebenen Benutzernamen übereinstimmen.

GetAllRoles()

Ruft eine Liste aller Rollen für die Anwendung ab.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetRolesForUser(String)

Ruft eine Liste der Rollen ab, die ein Benutzer innehat.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
GetUsersInRole(String)

Ruft eine Liste der Benutzer mit der angegebenen Rolle ab.

Initialize(String, NameValueCollection)

Initialisiert den SQL Server-Rollenanbieter mit den Eigenschaftswerten, die in der Konfigurationsdatei der ASP.NET-Anwendung angegeben sind. Diese Methode ist nicht für die direkte Verwendung im Code vorgesehen.

IsUserInRole(String, String)

Ruft einen Wert ab, der angibt, ob der angegebene Benutzer die angegebene Rolle innehat.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
RemoveUsersFromRoles(String[], String[])

Entfernt die angegebenen Benutzernamen aus den angegebenen Rollen.

RoleExists(String)

Ruft einen Wert ab, der angibt, ob der angegebene Rollenname bereits in der Rollendatenbank vorhanden ist.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Weitere Informationen