濮阳杆衣贸易有限公司

主頁 > 知識庫 > ASP.NET中的URL過濾實現(xiàn)代碼

ASP.NET中的URL過濾實現(xiàn)代碼

熱門標簽:蘋果手機凱立德地圖標注 電話機器人軟件銷售工作 申請400電話手續(xù) 百度ai地圖標注 南陽外呼系統(tǒng)定制化 預測式外呼系統(tǒng)使用說明 玉林市機器人外呼系統(tǒng)哪家好 同安公安400電話怎么申請流程 合肥電銷外呼系統(tǒng)哪家公司做的好

下面是類的定義。

復制代碼 代碼如下:

using System;
 using System.Web;
 using System.Web.SessionState;

 namespace QTJZ
 {
     public class Filters : IHttpModule, IRequiresSessionState
     {
         public void Dispose() { }

         public void Init(HttpApplication application)
         {
             application.AcquireRequestState += new EventHandler(application_AcquireRequestState);
         }

         public void application_AcquireRequestState(object sender, EventArgs e)
         {
             HttpApplication application = sender as HttpApplication;
             HttpRequest request = application.Request;
             HttpResponse response = application.Response;

             string url=request.CurrentExecutionFilePath.Trim('/');
             string suffix = request.CurrentExecutionFilePathExtension.Trim('.');

             if (!url.Equals("Default.htm") (suffix == "aspx" || suffix == "htm"))
             {
                 object sessionObj = application.Context.Session == null ? null : application.Session["useID"];
                 if (sessionObj==null)
                 {
                     response.Redirect("~/Default.htm");
                 }
             }
         }
     }
 }

為了實現(xiàn)過濾的效果,F(xiàn)ilters類需要實現(xiàn)IHttpMoeld接口,實現(xiàn)該接口需要有兩個方法,一個是Dispose,另一個是Init。Init的參數(shù)是一個HttpApplication類型的實例,利用這個實例注冊一些事件。由于現(xiàn)在要對URL進行過濾,因此注冊的是AcquireRequestState事件。類似事件羅列如下
BeginRequest 在 ASP.NET 響應請求時作為 HTTP 執(zhí)行管線鏈中的第一個事件發(fā)生。
AuthenticateRequest 當安全模塊已建立用戶標識時發(fā)生。
AuthorizeRequest 當安全模塊已驗證用戶授權時發(fā)生。
ResolveRequestCache

在 ASP.NET 完成授權事件以使緩存模塊從緩存中為請求提供服務后發(fā)生,

從而繞過事件處理程序(例如某個頁或 XML Web services)的執(zhí)行。

AcquireRequestState 當 ASP.NET 獲取與當前請求關聯(lián)的當前狀態(tài)(如會話狀態(tài))時發(fā)生。
PreRequestHandlerExecute 恰好在 ASP.NET 開始執(zhí)行事件處理程序(例如,某頁或某個 XML Web services)前發(fā)生。
PostRequestHandlerExecute 在 ASP.NET 事件處理程序(例如,某頁或某個 XML Web service)執(zhí)行完畢時發(fā)生。
ReleaseRequestState 在 ASP.NET 執(zhí)行完所有請求事件處理程序后發(fā)生。 該事件將使狀態(tài)模塊保存當前狀態(tài)數(shù)據。
UpdateRequestCache 當 ASP.NET 執(zhí)行完事件處理程序以使緩存模塊存儲將用于從緩存為后續(xù)請求提供服務的響應時發(fā)生。
EndRequest 在 ASP.NET 響應請求時作為 HTTP 執(zhí)行管線鏈中的最后一個事件發(fā)生。

獲取要跳轉的url可以用request的CurrentExecutionFilePath屬性,而獲取請求文件的后綴可以用CurrentExecutionFilePathExtension,至于要按什么規(guī)則來判斷,按需求而定。我這里是在請求時判斷Session是否存在,不存在則跳轉回登陸頁面。由于要用到Session,打開頁面的時候會拋出異常,異常信息是“會話狀態(tài)在此上下文中不可用。”,在實現(xiàn)了IRequiresSessionState接口之后就沒有異常拋出了。

此外,還需要在配置文件Web.config的 system.web>節(jié)點下添加如下代碼
復制代碼 代碼如下:

httpModules>
add name="filters" type="QTJZ.Filters"/>
/httpModules>

其中type屬性則是上面Filters類的完全限定名

您可能感興趣的文章:
  • asp.NET 臟字過濾算法 修改版
  • asp.NET 臟字過濾算法
  • ASP.NET過濾器的應用方法介紹
  • asp.net 過濾圖片標簽的正則
  • ASP.NET環(huán)境下為網站增加IP過濾功能
  • ASP.NET過濾HTML標簽只保留換行與空格的方法
  • ASP.NET過濾HTML字符串方法總結
  • asp.net 臟字典過濾問題 用正則表達式來過濾臟數(shù)據
  • Asp.net之數(shù)據過濾淺析
  • ASP.NET過濾類SqlFilter,防止SQL注入
  • 高效.NET臟字過濾算法與應用實例

標簽:南昌 臺州 淄博 嘉興 南京 揚州 南京 海南

巨人網絡通訊聲明:本文標題《ASP.NET中的URL過濾實現(xiàn)代碼》,本文關鍵詞  ASP.NET,中的,URL,過濾,實現(xiàn),;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET中的URL過濾實現(xiàn)代碼》相關的同類信息!
  • 本頁收集關于ASP.NET中的URL過濾實現(xiàn)代碼的相關信息資訊供網民參考!
  • 推薦文章
    九龙城区| 莆田市| 武夷山市| 弥渡县| 阜康市| 犍为县| 石门县| 太康县| 前郭尔| 武陟县| 龙江县| 泾川县| 扬州市| 灵山县| 安西县| 玛多县| 高淳县| 凤山县| 德格县| 墨江| 浪卡子县| 吉林省| 彭泽县| 西峡县| 招远市| 铁岭市| 靖宇县| 阳原县| 岑巩县| 长乐市| 任丘市| 永宁县| 博兴县| 舞钢市| 甘孜| 定陶县| 桂林市| 门源| 株洲县| 措美县| 华安县|