HTTP-Module werden in der Datei web.config registriert. Dadurch wird das Modul mit einer Anwendung verknüpft. Wenn ASP.NET dann eine Instanz der Http-Application-Klasse für eine Anwendung erstellt, erzeugt das auch Instanzen sämtlicher Module, die für diese registriert wurden. Die Init-Methode des Moduls wird dabei aufgerufen.
Im Rahmen der Init-Methode überwacht das Modul ein oder mehrere Ereignisse des Http-Application-Objekts. Diese Ereignisse korrespondieren mit Benutzeraktionen innerhalb einer ASP.NET-Anwendung. Es gibt unter anderem die folgenden Ereignisse:
- AcquireRequestState: Dieses Ereignis wird ausgelöst, um den Status der Anfrage abzurufen oder festzulegen.
- AuthenticateRequest wird ausgelöst, wenn ein Sicherheitsmodul den Benutzer authentifizieren muss, ehe die Anfrage bearbeitet wird.
- AuthorizeRequest wird von einem Sicherheitsmodul ausgelöst, wenn die Anfrage nach der Authentifzierung autorisiert werden muss.
- BeginRequest zeigt an, dass eine neue Anfrage beginnt.
- Disposed zeigt, dass die Anwendung beendet wird, so dass das Modul abschließende Operationen durchführen kann.
- EndRequest gibt an, dass die Anfrage beendet wird.
- Error wird ausgelöst, wenn während der Anfrageverarbeitung ein Fehler auftritt.
- PostRequestHandlerExecute weist darauf hin, dass der Handler die Verarbeitung der Anfrage beendet hat.
- PreRequestHandlerExecute gibt an, dass der Handler für die Anfrage gleich aufgerufen wird.
- PreSendRequestContent zeigt, dass gleich Inhalte an den Client geschickt werden.
- PreSendRequestHeaders offenbart, dass gleich HTTP-Header an den Client geschickt werden.
- ReleaseRequestState zeigt, dass der Handler die Verarbeitung der Anfrage beendet hat.
- ResolveRequestCache wird nach der Authentifizierung ausgelöst.
- UpdateRequestCache wird nach einer Rückmeldung vom Handler ausgelöst.
Ein HTTP-Modul kann jedes dieser Ereignisse verwenden.
So erstellt man ein HTTP-Modul
Ein eigenes HTTP-Modul kann mit Hilfe des IHttpModule-Interface erstellt werden, das sich im System.Web-Namensbereich findet. Das IHttpModule-Interface verfügt über zwei Methoden mit den folgenden C#-Signaturen:
public void Init(HttpApplication app); public void Dispose();
Die entsprechenden VB.NET-Signaturen lauten:
Public Sub Init(app As HttpApplication) Public Sub Dispose()
Die Init-Methode ist wichtig, denn sie wird aufgerufen, wenn das HTTP-Modul eingehende Anfragen oder ausgehende Rückmeldungen verarbeiten soll. Aufrufe von Ereignissen (aus der obigen Liste) werden in dieser Methode platziert. Fall eines der Ereignisse aus der Http-Application-Klasse verwendet wird, muss der entsprechende Code zur Ereignisbehandlung ebenfalls hinzugefügt werden. Hierzu gehören ein Delegate, die Methode, die mit dem Ereignis verknüpft ist, und so weiter.
Neueste Kommentare
Noch keine Kommentare zu So lassen sich Web-Anwendungen durch HTTP-Module erweitern
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.