So lassen sich Web-Anwendungen durch HTTP-Module erweitern

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.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Lags beim Online-Gaming? DSL-Vergleich und andere Tipps schaffen Abhilfe

Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…

3 Tagen ago

GenKI-Fortbildung immer noch Mangelware

Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…

3 Tagen ago

Netzwerk-Portfolio für das KI-Zeitalter

Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…

3 Tagen ago

Internet-Tempo in Deutschland: Viel Luft nach oben

Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.

3 Tagen ago

Erste Entwickler-Preview von Android 16 verfügbar

Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…

3 Tagen ago

Kaspersky warnt vor Cyberangriff auf PyPI-Lieferkette

Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.

4 Tagen ago