Gewusst wie: Erstellen und Ausführen des Beispiels für Profilanbieter
Aktualisiert: November 2007
Die Themen in diesem Abschnitt enthalten Beispielcode für einen ASP.NET-Profilanbieter. Der Beispielanbieter verwendet den .NET Framework-Datenanbieter für ODBC, um sich mit einer ODBC-Datenquelle zu verbinden. In diesem Beispiel wird eine Access-Datenbank als Datenquelle verwendet.
In diesem Thema werden Einzelheiten zur Implementierung des Beispielprofilanbieters erläutert, und es wird beschrieben, wie Sie das Beispiel erstellen und eine ASP.NET-Anwendung für die Verwendung des Beispielanbieters konfigurieren.
Hinweis: |
---|
Da Datenquellen unterschiedliche SQL-Syntax unterstützen, funktionieren einige SQL-Befehle nicht mit allen Datenquellen. Es empfiehlt sich daher, einen Profilanbieter für eine spezifische Datenquelle zu erstellen, selbst wenn Sie für den Zugriff auf die Datenquelle den .NET Framework-Datenanbieter für ODBC oder den .NET Framework-Datenanbieter für OLEDB verwenden. Sie können zum Beispiel verschiedene Anbieter wie SybaseProfileProvider, OracleProfileProvider usw. erstellen. |
Den Code für den Beispielanbieter finden Sie unter Beispielimplementierung eines Profilanbieters.
Erstellen der Anbieterdatenbank
Der Anbieter wurde für den Lese- und Schreibzugriff auf drei Datenbanktabellen entworfen: Profiles, StockSymbols und ProfileData. Der Beispielprofilanbieter unterstützt zwei Profileigenschaften: eine Liste mit Aktiensymbolen und eine Postleitzahl.
Jedes Benutzerprofil kann in der Tabelle Profiles der Datenbank eindeutig identifiziert werden. Diese Tabelle enthält Profilinformationen, z. B. den Anwendungsnamen und das Datum der letzten Aktivität. Die Tabelle Profiles enthält einen Primärschlüssel, der automatisch erhöht wird. Mithilfe dieses Schlüssels kann jede Zeile eindeutig identifiziert werden, und es können Beziehungen zu anderen Tabellen der Datenbank hergestellt werden, die Profileigenschaftenwerte enthalten.
Die Tabelle StockSymbols enthält die Werte für die Liste der Aktiensymbole, die mithilfe der StockSymbols-Eigenschaft gespeichert und abgerufen werden. Die Tabelle StockSymbols verfügt über eine 1:n-Beziehung zur Tabelle Profiles, da ein einzelnes Benutzerprofil eine beliebige Anzahl Aktiensymbole überwachen kann.
Der ZipCode-Eigenschaftenwert wird in der Tabelle ProfileData gespeichert. Die Tabelle ProfileData verfügt über eine 1:1-Beziehung zur Tabelle Profiles.
So erstellen Sie die Datenbanktabellen für das Speichern von Profilen
Erstellen Sie eine neue Microsoft Access-Datenbank, oder öffnen Sie eine bereits vorhandene Datenbank.
Hinweis: Falls Sie die Datenbank in den Dateiordnern der Webanwendung speichern möchten, sollten Sie sie im Ordner App_Data der Anwendung speichern. Der Inhalt von App_Data steht dem Anwendungscode zur Verfügung, ist aber für Webanforderungen nicht verfügbar. Außerdem verfügt der ASP.NET-Prozess über Lese- und Schreibberechtigung für den Ordner App_Data.
Geben Sie in Access oder einem anderen Tool, das Tabellen in Access-Datenbanken erstellen kann, die folgende Datendefinitionsabfrage ein, um die Tabelle Profiles zu erstellen:
CREATE TABLE Profiles ( UniqueID AutoIncrement NOT NULL PRIMARY KEY, Username Text (255) NOT NULL, ApplicationName Text (255) NOT NULL, IsAnonymous YesNo, LastActivityDate DateTime, LastUpdatedDate DateTime, CONSTRAINT PKProfiles UNIQUE (Username, ApplicationName) )
Geben Sie folgende Datendefinitionsabfrage ein, um die Tabelle StockSymbols zu erstellen:
CREATE TABLE StockSymbols ( UniqueID Integer, StockSymbol Text (10), CONSTRAINT FKProfiles1 FOREIGN KEY (UniqueID) REFERENCES Profiles )
Geben Sie folgende Datendefinitionsabfrage ein, um die Tabelle ProfileData zu erstellen:
CREATE TABLE ProfileData ( UniqueID Integer, ZipCode Text (10), CONSTRAINT FKProfiles2 FOREIGN KEY (UniqueID) REFERENCES Profiles )
Bereitstellen des Zugriffs auf das Ereignisprotokoll
Wenn beim Zugriff des Beispielanbieters auf die Datenquelle eine Ausnahme ausgelöst wird, wird die Ausnahme nicht an die ASP.NET-Anwendung zurückgegeben. Stattdessen werden die Einzelheiten der Ausnahme in das Windows-Anwendungsereignisprotokoll geschrieben. Hierbei handelt es sich um eine Sicherheitsmaßnahme, die verhindern soll, dass vertrauliche Informationen über die Datenquelle in der ASP.NET-Anwendung verfügbar gemacht werden.
Der Beispielanbieter gibt ein Source-Ereignis von "OdbcProfileProvider" an. Damit eine ASP.NET-Anwendung erfolgreich in das Anwendungsereignisprotokoll schreiben kann, müssen Sie dieses für Zugriffe verfügbar machen.
Hinweis: |
---|
Wenn Sie nicht möchten, dass der Beispielanbieter Ausnahmen in das Ereignisprotokoll schreibt, können Sie das writeExceptionsToEventLog-Attribut in der Anbieterkonfiguration in der Datei Web.config auf false festlegen. |
So stellen Sie Zugriff auf das Ereignisprotokoll bereit
Erstellen Sie mit Regedit.exe oder einem anderen Tool zur Bearbeitung der Windows-Registrierung den folgenden Registrierungsschlüssel:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\OdbcProfileProvider
Erstellen des Beispielanbieters
Um den Beispielanbieter verwenden zu können, müssen Sie den Code für die Webanwendung verfügbar machen. Dazu gibt es zwei Möglichkeiten:
Legen Sie den Quellcode des Beispielanbieters im Ordner App_Code der Anwendung ab. In diesem Fall müssen Sie den Beispielcode nicht manuell kompilieren.
Kompilieren Sie den Code, und legen Sie die dabei entstehende Assembly im Ordner Bin der Anwendung ab, oder geben Sie ihr einen starken Namen, und stellen Sie sie in den globalen Assemblycache.
So testen Sie den Beispielanbieter ohne manuelles Kompilieren
Erstellen Sie unter dem Anwendungsstammverzeichnis einen Ordner mit dem Namen App_Code, falls in der Anwendung noch kein solcher Ordner vorhanden ist.
Erstellen Sie im Ordner App_Code je nach Programmiersprache, die Sie verwenden möchten, eine Textdatei mit dem Namen OdbcProfileProvider.vb oder OdbcProfileProvider.cs.
Hinweis: Wenn sich bereits Quellcode im Verzeichnis App_Code der Anwendung befindet, verwenden Sie die Version des Beispielanbieters, die in derselben Sprache wie der bereits vorhandene Code geschrieben ist. ASP.NET kompiliert den Anbieter, sobald eine Seite der ASP.NET-Anwendung zum ersten Mal angefordert wird.
Kopieren Sie den Beispielquellcode (in der entsprechenden Sprache), fügen Sie den Code in die entsprechende Textdatei ein, und speichern Sie die Datei.
So kompilieren Sie den Beispielanbieter
Erstellen Sie einen Ordner für die Quelldateien für benutzerdefinierte Steuerelemente und die zugehörigen Klassen.
Erstellen Sie im Quellcodeordner je nach Programmiersprache, die Sie verwenden möchten, eine Textdatei mit dem Namen OdbcProfileProvider.vb oder OdbcProfileProvider.cs.
Hinweis: Legen Sie den Quellcode nicht im Ordner App_Code ab, wenn Sie beabsichtigen, das Beispiel zusätzlich manuell zu kompilieren und die dabei entstehende Assembly in den Ordner Bin zu stellen. Andernfalls ist der Anbietertyp sowohl in der kompilierten Assembly als auch in der dynamisch generierten Assembly vorhanden, die ASP.NET aus dem Ordner App_Code erstellt. Dies würde beim Laden des Anbieters zu einem mehrdeutigen Verweis führen, und Code, der auf den Typ verweist, würde einen Compilerfehler hervorrufen.
Kopieren und fügen Sie den Quellcode für jedes Beispiel in die entsprechende Textdatei ein, und speichern Sie die Datei.
Führen Sie den folgenden Befehl vom Quellcodeordner aus, um die Steuerelemente und die zugehörigen Klassen in eine Assembly zu kompilieren.
vbc /out:OdbcProfileProvider.dll /t:library OdbcProfileProvider.vb /r:System.Web.dll /r:System.Configuration.dll
csc /out:OdbcProfileProvider.dll /t:library OdbcProfileProvider.cs /r:System.Web.dll /r:System.Configuration.dll
Aufgrund der /t:library-Compileroption erstellt der Compiler eine Bibliothek (anstelle einer ausführbaren Assembly). Die /out-Option stellt einen Namen für die Assembly bereit, und die /r-Option listet die Assemblys auf, die mit Ihrer Assembly verknüpft werden.
Hinweis: Wenn Sie den Compilerbefehl nicht ausführen können, müssen Sie den .NET Framework-Installationspfad zur PATH-Variablen hinzufügen, bevor Sie den Befehl ausführen. Klicken Sie in Windows mit der rechten Maustaste auf Arbeitsplatz. Klicken Sie auf Eigenschaften, dann auf die Registerkarte Erweitert und anschließend auf die Schaltfläche Umgebungsvariablen. Doppelklicken Sie in der Liste Systemvariablen auf die Path-Variable. Fügen Sie in dem Textfeld Wert der Variablen am Ende der in dem Textfeld vorhandenen Werte ein Semikolon (;) ein, und geben Sie dann den Pfad Ihrer .NET Framework-Installation ein. .NET Framework wird in der Regel im Windows-Installationsordner unter \Microsoft.NET\Framework\Versionsnummer installiert.
Konfigurieren des Beispielanbieters in einer ASP.NET-Anwendung
Um den Beispielanbieter in einer ASP.NET-Webanwendung verwenden zu können, müssen Sie die Anwendung so konfigurieren, dass sie den Anbieter registriert.
Diese Beispielkonfiguration setzt voraus, dass Ihre Website die Formularauthentifizierung unterstützt und zusätzlich über eine ASP.NET-Seite mit dem Namen Login.aspx verfügt, über die sich die Benutzer anmelden und eine Benutzeridentität einrichten können. Die Beispielkonfiguration unterstützt auch anonyme Authentifizierung, sodass die Benutzer sich nicht zwangsläufig anmelden müssen.
So konfigurieren Sie eine Anwendung für die Verwendung des Beispielanbieters
Erstellen Sie eine ASP.NET-Seite mit dem Namen Login.aspx, und führen Sie einen der folgenden Schritte aus:
Wenn die Anwendung bereits für die Verwendung der ASP.NET-Mitgliedschaft konfiguriert wurde, fügen Sie ein Login-Steuerelement hinzu.
Erstellen Sie ein Anmeldeformular, und verwenden Sie Formularauthentifizierung für die Authentifizierung von Benutzern. Ausführliche Informationen finden Sie unter Gewusst wie: Implementieren der einfachen Formularauthentifizierung.
Hinweis: Das für die Formularauthentifizierung erforderliche Konfigurationselement wird in Schritt 4 erläutert.
Erstellen Sie auf dem Computer einen Datenquellennamen (Data Source Name, DSN) "OdbcProfile", und konfigurieren Sie ihn so, dass er die Verbindungsinformationen für die Verbindung zu der Access-Datenbank enthält, die Sie bereits erstellt haben.
Erstellen Sie im Stammordner der ASP.NET-Anwendung eine Textdatei mit dem Namen Web.config, falls diese noch nicht vorhanden ist.
Fügen Sie der Datei Web.config folgende Elemente hinzu:
<configuration> <connectionStrings> <add name="OdbcProfile" connectionString="DSN=OdbcProfile;" /> </connectionStrings> <system.web> <authentication mode="Forms" > <forms loginUrl="login.aspx" name=".ASPXFORMSAUTH" /> </authentication> <anonymousIdentification enabled="true" /> <profile defaultProvider="OdbcProvider"> <providers> <add name="OdbcProvider" type="Samples.AspNet.Profile.OdbcProfileProvider" connectionStringName="OdbcProfile" /> </providers> <properties> <add name="ZipCode" allowAnonymous="true" /> <add name="CityAndState" provider="AspNetSqlProfileProvider" allowAnonymous="true" /> <add name="StockSymbols" type="System.Collections.ArrayList" allowAnonymous="true" /> </properties> </profile> </system.web> </configuration>
Siehe auch
Konzepte
Implementieren eines Profilanbieters
Übersicht über ASP.NET-Profileigenschaften