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.

Themenseiten: Anwendungsentwicklung, Software, Webentwicklung

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu So lassen sich Web-Anwendungen durch HTTP-Module erweitern

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *