国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - ASP.NET過濾器的應用方法介紹

ASP.NET過濾器的應用方法介紹

2019-11-12 13:26asp.net教程網 ASP.NET教程

ASP.NET過濾器的應用方法介紹,需要的朋友可以參考一下

在J2EE Web開發中有過濾器filter,該filter可以對指定的URL訪問進行攔截,并執行過濾器的方法,根據實際應用情況,在過濾器中修改請求的代碼、判斷會話信息,也可以做權限控制,總之這個過濾器是非常有意義的,也可以說是責任鏈設計模式在J2EE中的一個應用。

  那么在ASP.NET中是否也可以定義這樣的過濾器結構,并在過濾器中進行相應的邏輯操作呢?答案是肯定,本文將告訴你如果編寫一個過濾器,又如何配置到IIS的Web應用之中。

過程一:如何編寫過濾器

  編寫過濾器,其實就是編寫一個過濾器的類,也就是編寫一個HttpModule模塊,這個過濾器應該實現IHttpModule基類,并重寫Init方法,給你一個實際的例子如下:

這是一個PageFilter.cs 

復制代碼代碼如下:


using System;
using System.Web;
using System.Web.SessionState;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using System.IO;

 

public class PageFilter: IHttpModule
{
        public String ModuleName
        {
            get { return "PageFilter"; }
        }

        //在 Init 方法中注冊HttpApplication 
        // 通過委托方式注冊事件
        public void Init(HttpApplication application)
        {
            application.AcquireRequestState += new EventHandler(Application_AcquireRequestState);            
        }

  private void Application_AcquireRequestState(Object source, EventArgs e)

        {

            HttpApplication application = (HttpApplication)source;
            HttpContext context = application.Context;
            HttpSessionState session = context.Session;
            HttpRequest request = context.Request;
            HttpResponse response = context.Response;
            String contextPath = request.ApplicationPath;
        }
}


  需要說明的是,“過濾器”也可以稱為是“攔截器”,即攔截整個HTTP請求/響應的過程,因為整個請求/響應過程可以分為許多個階段,那么這里面就會涉及到一個問題,也就是你的過濾器想攔截具體的哪一個階段,上面的Init函數中,可以自己定義想攔截的具體階段,例如上面攔截是產生請求會話的階段,AcquireRequestStat是這個狀態的代表,而攔截后對應的處理函數為Application_AcquireRequestState,所以下面定義了一個Application_AcquireRequestState方法,在該方法中可以通過強制類型轉換獲得application、context、session、request、response等一系列對象,在獲得這些對象的基礎上,你就可以進行核心業務邏輯的編寫了,例如獲得判斷當前URL訪問是否合法,檢查當前訪問是否為登錄后用戶的訪問等等。

 

  另外既然有攔截的整個過程有許多階段,那么如何攔截其它的階段呢?這個應該很簡單了,與上面類似在Init中按如下邏輯定義即可:

application.階段的標準名稱1 += new EventHandler(該階段對應的處理方法名稱1); 
application.階段的標準名稱2 += new EventHandler(該階段對應的處理方法名稱2); 
。。。

階段的標準名稱,是說這些階段是有標準的名稱的,而且是application對象的標準屬性,例如上面AcquireRequestState,還有諸如BeginRequest、AuthenticateRequest、AuthorizeRequest、ResolveRequestCache、AcquireRequestState、PreRequestHandlerExecute、PostRequestHandlerExecute、ReleaseRequestState、UpdateRequestCache、EndRequest許多階段等等,這些階段都有特定的含義.

  該階段對應的處理方法名稱,其實就是你自己定義對應這個階段處理的方法,上面已有樣例,不再多解釋。

  還有一點需要特別注意,有那么多階段可以攔截,但是實際應用中,我們攔截的往往也就一兩個階段,而且要注意有些服務器對象只有在特定的階段才可以攔截到,例如Session對象在BeginRequest階段中是沒有的,在AcquireRequestState及其以后階段中是有的,因此要根據實際需求來攔截具體的階段,這個是新手最容易遇到的問題。

過程二:如何配置過濾

  我們編寫好了一個.cs文件的過濾器,那么如何讓這個過濾器起作用呢,這個需要進行配置,默認肯定是不會攔截的,你需要將該過濾器配置到應用的Web.config文件之中,上述樣例的配置如下:

復制代碼代碼如下:

<configuration>
<system.web>
 <httpModules>
   <add name="pageModule" type="PageFilter"/>
 </httpModules>
</system.web>
</configuration>

 

  這樣其實就配置好了,然后發布網站生成dll等就可以了,到時后會自動攔截URL訪問的,不過要記住一點,默認情況下對于該應用的所有請求都會被攔截,如果你指向攔截特定的請求,例如想只對aspx文件的請求進行攔截,那么可以在過濾器邏輯中加入對文件后綴名的判斷,如果不是aspx的直接放過即可.

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 在线激情网站 | 久久综合久久久 | 午夜剧场免费在线观看 | 国产色 | 久久综合狠狠综合久久综合88 | 精品9999 | av免费资源 | 亚洲毛片在线观看 | 日韩午夜在线视频 | 欧美日韩一区二区三区不卡视频 | 先锋资源在线观看 | 成人午夜网 | 日本激情网 | 国产伦精品一区二区三区照片91 | 欧美一级黄色片网站 | 久久成人a| www.中文字幕 | 免费一二区 | 在线观看91视频 | 欧美一级久久 | 操久久| 精品国产99 | heyzo 在线 | 久久精品国产视频 | 久草视频网 | 久久99精品久久久久久国产越南 | 六月婷操 | 日韩福利影院 | av一二 | 国产欧美日韩在线 | www.国产 | 国产黄色小视频 | 日韩国产精品一区二区三区 | 成人午夜视频在线播放 | 国产精品亚洲成在人线 | 榴莲视频成人在线观看 | 中文字幕在线观看不卡视频 | 久久久久av | 香蕉yeye凹凸一区二区三区 | 中文字幕电影在线观看 | 精品国产黄a∨片高清在线 91精品国产91久久久 |