Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 51405|Απάντηση: 5

[ASP.NET] asp.net διεπαφή IHttpModule εξηγείται λεπτομερώς

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 13/3/2018 9:46:06 μ.μ. | | | |
Γραμμένο μπροστά

Όσον αφορά το σχετικό περιεχόμενο του IHttpModule, ρωτήθηκα επίσης κατά τη διάρκεια της συνέντευξης και ένιωσα αόριστα ότι αυτή η διεπαφή έχει μια μέθοδο Init, η οποία μπορεί να καταχωρήσει μια σειρά συμβάντων με τη μέθοδο Init στην κλάση υλοποίησης. Στο σπίτι αυτό το Σαββατοκύριακο, δεν υπάρχει πραγματικά τίποτα να κάνουμε, ακόμα κι αν είναι να ελέγξουμε και να συμπληρώσουμε τα κενά σε αυτό το κομμάτι γνώσης.

Το IHttpModule λειτουργεί

Οι φίλοι που είναι εξοικειωμένοι με asp.net κύκλο ζωής θα πρέπει να γνωρίζουν ότι η εκτέλεση του HttpModule εκτελείται πριν από το HttpHandler και μετά την εκτέλεση μιας σειράς συμβάντων του HttpModule, στη συνέχεια την εκτέλεση του HttpHandler και στη συνέχεια την εκτέλεση ορισμένων συμβάντων του HttpModule. Για λεπτομέρειες, ανατρέξτε στο παρακάτω διάγραμμα κύκλου ζωής.



Το HttpHandler είναι το μέρος για να χειριστείτε το αίτημα http, το HttpModule είναι ο "μόνος τρόπος" για ένα αίτημα HTTP, επομένως μπορείτε να προσθέσετε μερικές απαιτούμενες πληροφορίες πάνω από τις πληροφορίες αιτήματος HTTP πριν αυτό το αίτημα HTTP περάσει στο πραγματικό κέντρο επεξεργασίας αιτημάτων (HttpHandler) ή να κάνετε κάποια πρόσθετη εργασία στις πληροφορίες αίτησης HTTP που έχουν υποκλαπεί. Ή σε ορισμένες περιπτώσεις, απλώς τερματίστε τα αιτήματα HTTP που πληρούν ορισμένες προϋποθέσεις, τα οποία μπορούν να λειτουργήσουν ως φίλτρο.

Ένα αίτημα HTTP θα μεταβιβαστεί στο κοντέινερ HttpHandler κάποια στιγμή (συμβάν ResolveRequestCache) κατά την παράδοση του κοντέινερ HttpModule. Μετά από αυτό το συμβάν, το κοντέινερ HttpModule δημιουργεί μια παρουσία εισόδου του HttpHandler, αλλά αντί να εγκαταλείψει τον έλεγχο της αίτησης HTTP, συνεχίζει να ενεργοποιεί τα συμβάντα AcquireRequestState και PreRequestHandlerExcute. Μετά το συμβάν PreRequestHandlerExcute, το παράθυρο HttpModule δίνει προσωρινά τον έλεγχο στο κοντέινερ HttpHandler για την επεξεργασία πραγματικών αιτήσεων HTTP.

Μέσα στο κοντέινερ HttpHandler, εκτελείται η μέθοδος ProcessRequest για τη διαχείριση αιτημάτων HTTP. Αφού το κοντέινερ HttpHandler επεξεργαστεί ολόκληρο το αίτημα HTTP, επιστρέφει τον έλεγχο στο HttpModule, το οποίο συνεχίζει να μεταβιβάζει την επεξεργασμένη ροή πληροφοριών αιτήματος HTTP επίπεδο προς επίπεδο μέχρι να επιστραφεί στον πελάτη.

Ένα παράδειγμα

Δομή του έργου



Κώδικας MyHttpModule

Καταχωρίστε ένα προσαρμοσμένο HttpModule στο web.config

Περιήγηση στη σελίδα Default.aspx



Ποια είναι λοιπόν η σειρά εκτέλεσης μιας σειράς γεγονότων στον κύκλο ζωής;


Δείτε τα αποτελέσματα



Χρησιμοποιήστε το HttpModule για να τερματίσετε το αίτημα Http


έκβαση



περίληψη

Εδώ εισάγουμε την πιο σημαντική διεπαφή στον κύκλο ζωής του asp.net, το IHttpModule, το οποίο μπορεί να περιγραφεί ως διεπαφή συμβάντων, επειδή στη μέθοδο Init στην κλάση υλοποίησης, μπορούν να καταχωρηθούν διάφορα συμβάντα στον κύκλο ζωής και να οριστούν διάφορες λογικές στο συμβάν.





Προηγούμενος:Asp.Net Παρουσιάστηκε το IHttpHandler
Επόμενος:Η C# πρέπει να τροποποιήσει αυτήν τη λύση κεφαλίδας με τα κατάλληλα χαρακτηριστικά ή μεθόδους
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 13/3/2018 9:46:47 μ.μ. |
. Το NETFramework 4.5 παρέχει 25 τυπικά συμβάντα.


 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 13/3/2018 9:47:03 μ.μ. |
. NETFramework 4.0, το οποίο παρέχει 19 βασικά συμβάντα.

1. BeginRequest: Το πρώτο συμβάν asp.net να ξεκινήσει η επεξεργασία του αιτήματος, υποδεικνύοντας την έναρξη της επεξεργασίας.

2. AuthenticateRequest: Αίτημα ελέγχου ταυτότητας, που χρησιμοποιείται γενικά για τη λήψη των πληροφοριών χρήστη του αιτήματος.

3. PostAuthenticateRequest: Οι πληροφορίες χρήστη που έχουν ζητηθεί.

4. AuthorizeRequest: Εξουσιοδότηση, που χρησιμοποιείται γενικά για να ελέγξει εάν το αίτημα του χρήστη έχει λάβει άδεια.

5. PostAuthorizeRequest: Το αίτημα χρήστη έχει εγκριθεί.

6. ResolveRequestCache: Λάβετε τα αποτελέσματα επεξεργασίας της προηγούμενης προσωρινής μνήμης επεξεργασίας, εάν έχει αποθηκευτεί προσωρινά στο παρελθόν, τότε δεν χρειάζεται να επεξεργαστείτε το αίτημα και να επιστρέψετε απευθείας τα αποθηκευμένα αποτελέσματα.

7. PostResolveRequestCache: Η προσωρινή μνήμη έχει υποβληθεί σε επεξεργασία.

8. PostMapRequestHandler: Το ζητούμενο αντικείμενο επεξεργαστή έχει δημιουργηθεί με βάση το αίτημα του χρήστη.

9. AcquireRequestState: Λάβετε την κατάσταση του αιτήματος, το οποίο χρησιμοποιείται γενικά για συνεδρία

10. PostAcquireRequestState: Η συνεδρία έχει ληφθεί

11. PreRequestHandlerExecute: Προετοιμάστε το πρόγραμμα χειρισμού εκτέλεσης.

12. PostRequestHandlerExecute: Ο δείκτης χειρισμού έχει εκτελεστεί

13. ReleaseRequestState: Η κατάσταση του αιτήματος αποδέσμευσης.

14. PostReleaseRequestState: Η κατάσταση του αιτήματος έχει αποδεσμευτεί.

15. UpdateRequestCache: Ενημερώστε την προσωρινή μνήμη.

16. PostUpdateRequestCache: Η προσωρινή μνήμη έχει ενημερωθεί.

17. LogRequest: Η λειτουργία καταγραφής που ζητήθηκε

18. PostLogRequest: Η λειτουργία καταγραφής του αιτήματος έχει ολοκληρωθεί.

19. EndRequest: Το αίτημα υποβάλλεται σε επεξεργασία.
Δημοσιεύτηκε στις 22/4/2019 9:48:33 π.μ. |
Προσθέστε το σελιδοδείκτη
Δημοσιεύτηκε στις 30/9/2021 7:19:09 μ.μ. |
Πρόσφατα σπούδασα. Διαβάστε το προσεκτικά
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 14/7/2023 8:26:36 μ.μ. |
ASP.NET MVC μετράει αιτήματα με βάση τις μονάδες IHttpModule
https://www.itsvse.com/thread-10627-1-1.html
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com