国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

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

2024-07-10 12:45:06
字體:
供稿:網(wǎng)友

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

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

過程一:如何編寫過濾器

  編寫過濾器,其實就是編寫一個過濾器的類,也就是編寫一個HttpModule模塊,這個過濾器應該實現(xiàn)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函數(shù)中,可以自己定義想攔截的具體階段,例如上面攔截是產(chǎn)生請求會話的階段,AcquireRequestStat是這個狀態(tài)的代表,而攔截后對應的處理函數(shù)為Application_AcquireRequestState,所以下面定義了一個Application_AcquireRequestState方法,在該方法中可以通過強制類型轉(zhuǎn)換獲得application、context、session、request、response等一系列對象,在獲得這些對象的基礎上,你就可以進行核心業(yè)務邏輯的編寫了,例如獲得判斷當前URL訪問是否合法,檢查當前訪問是否為登錄后用戶的訪問等等。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 盈江县| 辛集市| 雅安市| 上蔡县| 衡东县| 涪陵区| 隆安县| 罗定市| 乡宁县| 临漳县| 永福县| 木里| 肇东市| 澄迈县| 柳河县| 资阳市| 岳阳市| 开江县| 赤壁市| 广南县| 吴堡县| 进贤县| 和林格尔县| 光山县| 商水县| 安西县| 茂名市| 昌江| 民权县| 吉水县| 富川| 楚雄市| 黄平县| 永兴县| 朝阳市| 英吉沙县| 金秀| 新竹县| 临沧市| 西乌| 新巴尔虎左旗|