2009-08-16 6 views

Odpowiedz

6

można użyć httpmodules do uwierzytelniania, audytu lub przepisywania adresu URL. Ponieważ każde żądanie przechodzi najpierw przez wszystkie moduły, zanim zostanie obsłużone przez httphandler, jest to miejsce do zastosowania kodu, który chcesz uruchomić przed określonym kodem aplikacji.

Można użyć httphandler, jeśli nie chcesz polegać na silniku asp.net. na przykład można napisać własny mechanizm renderowania oparty na AJAX, XML i XSLT, który nie opiera się na tradycyjnych stronach asp.net.

3

HttpModules i HttpHandlers są użyteczne, gdy chcesz zmienić domyślną obsługę IIS dokumentów albo przez zmianę zachowania całości lub dodawanie pre lub przetwarzania końcowego w dokumencie.

Jedną z praktycznych aplikacji, które miałem do modułu HttpModule, jest dynamiczne tworzenie miniatur. Napisałem moduł HttpModule obsługujący wszystkie żądania obrazów. Jeśli żądanie zawierało ciąg kwerendy "? Thumb", dynamicznie generowałbym miniaturkę, zamiast wyświetlać oryginalny obraz.

Ja również widziałem HttpModules stosowany do usuwania komentarzy i spacji z wyjściem strony aspx i przepisywania URL.

4

Znalazłeś się pisząc kod w zdarzeniu Page_Load ASPX emitować coś się z odpowiedzią, a następnie wywołanie Response.End? Najprawdopodobniej najlepiej napisano to jako HttpHandler (ashx).

+0

+1 tak, zrobiłem to od kilku dni :) –

2

HttpHandlers świetnie nadaje się do przekierowywania żądań dla określonych typów plików i innych zasobów. Na przykład, gdy trzeba coś zrobić z przychodzącym żądaniem dla typu pliku, który ASP.NET nie chroni poprzez FormsAuthentication, można faktycznie określić, czy jest to określony typ pliku, zlokalizowany w określonym katalogu i przekierować użytkownika do inna strona, jeśli nie jest autoryzowana.

HttpModules może wykonywać określone przetwarzanie dla aplikacji w sposób niezależny od zasobów. Bardziej techniczne wyjaśnienie można znaleźć tutaj: http://www.15seconds.com/issue/020417.htm

Ponadto, dodają one obciążenie do każdego żądania, co oznacza, że ​​nie należy ich używać do zadań wymagających dużej ilości procesów.

2

Obie koparki i moduły tylko naprawdę może być rozumiane w kontekście modelu rurociągu ASP.NET i jak zwyczaj handler/moduł tworzenia pasuje do tego modelu.

Kilka dobrych zasobów here i here.

Jak wspominają inni moduły mogą być wykorzystywane do tworzenia zachowanie w pewnych momentach zdarzeń (Innym częstym zastosowaniem jest globalna obsługa wyjątków), koparki utworzyć wniosek końcowy obsługi (nie jest to tylko sprytny nazwa) gdzie asp. Instancja strony sieciowej (która ostatecznie jest tylko mocno zapakowanym handler'em) byłaby albo niepotrzebnie ciężka, albo wręcz błędna. Osobiście używam w dowolnym momencie, kiedy tworzę coś, co nie generuje HTML-a, co staje się coraz bardziej powszechne, im bardziej rozwijasz aplikacje internetowe w przeciwieństwie do stron internetowych.

3

Przytoczę użycie, ludzie już dali dobre definicje.

koparki HTTP
Imaging chcesz renderować mapa strony internetowej, aby szukać robota silnika, zamiast pojawiały się plik zapisać okno (okno pojawia się po ASP.NET/IIS nie masz domyślnej obsługi Plik zapisz dla żądanego typu pliku, np. txt). Napisałem Handler HTTP do tworzenia plików mapy witryny w locie (pobieranie informacji o mapie z DB).

Powiązane problemy