您好,登錄后才能下訂單哦!
一般處理頁面就是HttpHandler區域
-------------------------------封裝類庫
using System; using System.Collections.Generic; using System.Text; using System.Web; using System.Text.RegularExpressions; /* ************************** * 案例功能: * 1,URL地址欄阻止(參數為aspx則跳轉到錯誤頁面) * 2,Form表達阻止(表單的值為aspx則彈出錯誤) * 3,阻止使用session ************************** */ namespace HttpModuleDome { public class MyHttpModule : IHttpModule { #region IHttpModule 成員 public void Dispose() { } public void Init(HttpApplication context) { context.BeginRequest += new EventHandler(context_BeginRequest); context.AcquireRequestState += new EventHandler(context_AcquireRequestState); } //開始請求階段 void context_BeginRequest(object sender, EventArgs e) { HttpApplication application = sender as HttpApplication; HttpContext context = application.Context; //Url地址欄阻止 if (context.Request.QueryString.Count > 0) { for (int i = 0; i < context.Request.QueryString.Count; i++) { if (context.Request.QueryString[context.Request.QueryString.Keys[i]] == "aspx") { context.Response.Redirect("http://www.baidu.com"); context.Response.End(); } } } //Form表單阻止 if (context.Request.Form.Count > 0) { for (int i = 0; i < context.Request.Form.Count; i++) { if (context.Request.Form[context.Request.Form.Keys[i]] == "aspx") { context.Response.Write("<script>alert('錯誤');location.href='" + context.Request.RawUrl + "'</script>"); context.Response.End(); } } } } //進入了HttpHandler區域,已經有了session void context_AcquireRequestState(object sender, EventArgs e) { HttpApplication application = sender as HttpApplication;//Global.asax的基類 HttpContext context = application.Context;//封裝了ASP.NET要處理的單次請求的所有信息 if (context.Session.Count > 0) { //context.Response.End();//直接跳過AcquireRequestState之后的請求,結束請求 } } #endregion } }
------------------------------------web.config里面引用
<system.web> <httpModules> <add name="MyhttpModule" type="HttpModuleDome.MyHttpModule,HttpModuleDome"/> </httpModules> </system.web>
------------------------------------也可以在Global.asax文件里面寫
<%@ Application Language="C#" %> <script runat="server"> /* *格式:以Application_開頭 */ //開始請求階段 void Application_BeginRequest(object sender, EventArgs e) { // 在應用程序啟動時運行的代碼 } void Application_Start(object sender, EventArgs e) { // 在應用程序啟動時運行的代碼 } void Application_End(object sender, EventArgs e) { // 在應用程序關閉時運行的代碼 } void Application_Error(object sender, EventArgs e) { // 在出現未處理的錯誤時運行的代碼 } void Session_Start(object sender, EventArgs e) { // 在新會話啟動時運行的代碼 } void Session_End(object sender, EventArgs e) { // 在會話結束時運行的代碼。 // 注意: 只有在 Web.config 文件中的 sessionstate 模式設置為 // InProc 時,才會引發 Session_End 事件。如果會話模式設置為 StateServer // 或 SQLServer,則不會引發該事件。 } </script>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。