Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 51405|Antwort: 5

[ASP.NET] asp.net IHttpModule-Schnittstelle wird ausführlich erklärt

[Link kopieren]
Veröffentlicht am 13.03.2018 21:46:06 | | | |
Geschrieben vorne

Bezüglich des relevanten Inhalts von IHttpModule wurde ich auch im Interview gefragt, und ich hatte vage das Gefühl, dass diese Oberfläche eine Init-Methode hat, die eine Reihe von Ereignissen mit der Init-Methode in der Implementierungsklasse registrieren kann. Zu Hause gibt es an diesem Wochenende wirklich nichts zu tun, selbst wenn es nur darum geht, die Lücken in diesem Wissen zu überprüfen und zu füllen.

IHttpModule funktioniert

Freunde, die mit asp.net Lebenszyklus vertraut sind, sollten wissen, dass die Ausführung von HttpModule vor HttpHandler ausgeführt wird und nach der Ausführung einer Reihe von Ereignissen von HttpModule, dann HttpHandler und anschließend einigen Ereignissen von HttpModule. Für Details siehe bitte das folgende Lebenszyklusdiagramm.



Der HttpHandler ist der Ort, an dem die HTTP-Anfrage verarbeitet wird, das HttpModule ist der "einzige Weg" für eine HTTP-Anfrage, sodass Sie einige erforderliche Informationen zusätzlich zu den HTTP-Anfragen hinzufügen können, bevor diese HTTP-Anfrage an das reale Anforderungsverarbeitungszentrum (HttpHandler) weitergeleitet wird, oder zusätzliche Arbeit an den abgefangenen HTTP-Anfragen durchführen können. Oder in manchen Fällen einfach HTTP-Anfragen zu beenden, die bestimmte Bedingungen erfüllen, was als Filter fungieren kann.

Eine HTTP-Anfrage wird zu einem Zeitpunkt (ResolveRequestCache-Ereignis) während der Auslieferung des HttpModule-Containers an den HttpHandler-Container weitergegeben. Nach diesem Ereignis erstellt der HttpModule-Container eine Ingress-Instanz des HttpHandlers, doch anstatt die Kontrolle über die HTTP-Anfrage aufzugeben, löst er weiterhin die AcquireRequestState- und PreRequestHandlerExcute-Ereignisse aus. Nach dem PreRequestHandlerExcute-Ereignis übergibt das HttpModule-Fenster vorübergehend die Kontrolle an den HttpHandler-Container für die tatsächliche HTTP-Anfrageverarbeitung.

Im Inneren des HttpHandler-Containers wird die Methode ProcessRequest ausgeführt, um HTTP-Anfragen zu verarbeiten. Nachdem der Container-HttpHandler die gesamte HTTP-Anfrage verarbeitet hat, gibt er die Kontrolle an das HttpModule zurück, das die verarbeitete HTTP-Anfrage weiterhin Schicht für Schicht weitergibt, bis sie an den Client zurückgegeben wird.

Eine Instanz

Projektstruktur



MyHttpModule-Code

Registrieren Sie ein benutzerdefiniertes HttpModule in web.config

Durchstöbern Sie die Seite Default.aspx



Wie ist also die Reihenfolge der Ausführung einer Reihe von Ereignissen im Lebenszyklus?


Durchstöbern Sie die Ergebnisse



Verwenden Sie HttpModule, um die HTTP-Anfrage zu beenden


Ergebnis



Zusammenfassung

Hier stellen wir die wichtigste Schnittstelle im asp.net-Lebenszyklus vor, IHttpModule, die als Ereignisschnittstelle beschrieben werden kann, da in der Init-Methode in der Implementierungsklasse verschiedene Ereignisse im Lebenszyklus registriert und verschiedene Logiken im Ereignis definiert werden können.





Vorhergehend:Asp.Net IHttpHandler vorgestellt
Nächster:C# muss diesen Header-Workaround mit den entsprechenden Attributen oder Methoden modifizieren
 Vermieter| Veröffentlicht am 13.03.2018 21:46:47 |
. NETFramework 4.5 bietet 25 Standard-Events.


 Vermieter| Veröffentlicht am 13.03.2018 21:47:03 |
. NETFramework 4.0, das 19 Standardereignisse bietet.

1. BeginRequest: Das erste Ereignis von asp.net, das mit der Verarbeitung der Anfrage beginnt, was den Beginn der Verarbeitung anzeigt.

2. AuthenticateRequest: Authentifizierungsanforderung, die allgemein verwendet wird, um die Benutzerinformationen der Anfrage zu erhalten.

3. PostAuthenticateRequest: Die angeforderten Benutzerinformationen.

4. AuthorizeRequest: Authorization, die allgemein verwendet wird, um zu überprüfen, ob der Antrag des Nutzers eine Berechtigung erhalten hat.

5. PostAuthorizeRequest: Die Benutzeranfrage wurde autorisiert.

6. ResolveRequestCache: Erhalten Sie die Verarbeitungsergebnisse des vorherigen Verarbeitungscaches; wenn er zuvor zwischengespeichert wurde, besteht keine Notwendigkeit, die Anfrage zu verarbeiten und die zwischengespeicherten Ergebnisse direkt zurückzugeben.

7. PostResolveRequestCache: Der Cache wurde verarbeitet.

8. PostMapRequestHandler: Das angeforderte Prozessorobjekt wurde basierend auf der Anfrage des Benutzers erstellt.

9. AcquireRequestState: Erhalte den Status der Anfrage, die allgemein für die Sitzung verwendet wird

10. PostAcquireRequestState: Die Sitzung wurde eingeholt

11. PreRequestHandlerExecute: Bereite den Execution Handler vor.

12. PostRequestHandlerExecute: Der Handler wurde ausgeführt

13. ReleaseRequestState: Der Zustand des Entlassungsantrags.

14. PostReleaseRequestState: Der Status der Anfrage wurde veröffentlicht.

15. UpdateRequestCache: Aktualisieren Sie den Cache.

16. PostUpdateRequestCache: Der Cache wurde aktualisiert.

17. LogRequest: Die angeforderte Log-Operation

18. PostLogRequest: Der Logvorgang der Anfrage wurde abgeschlossen.

19. EndAnfrage: Die Anfrage wird bearbeitet.
Veröffentlicht am 22.04.2019 09:48:33 |
Speichern Sie es als Lesezeichen
Veröffentlicht am 30.09.2021 19:19:09 |
Ich habe kürzlich gelernt. Lies es sorgfältig
 Vermieter| Veröffentlicht am 14.07.2023 20:26:36 |
ASP.NET MVC zählt Anfragen basierend auf IHttpModule-Modulen
https://www.itsvse.com/thread-10627-1-1.html
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com