三十八、建立test頁
這個網頁只有登入的使用者才可以看,
三十九、登入測試頁面
網站管理員操作的後台頁面有很多,在每個頁面加這段代碼的話,自己累,使用者也非常的不爽。我們有什麼好的方法處理這個問題嗎?
可以用過濾器:HttpModule---其中最核心的就是19個事件。
四十、19個事件
看錶,得知使用第九個。如何使用這張表:由於每一個動態網頁面都會走過濾器,我們就可以在過濾器裡面進行判斷。過濾器有19個事件,我們一查表發現是第9個。
那麼,我們怎麼去使用第9個事件呢?
可以自己定義個類,來繼承HttpModule這個介面,也可以在全域設定檔裡面,到底使用哪種方式,隨便你.
下面我寫好了這段代碼,分享原始碼貢大家使用:
插入CheckAdminModule.cs位置:
1 using System; 2 using System.Data; 3 using System.Configuration; 4 using System.Linq; 5 using System.Web; 6 using System.Web.Security; 7 using System.Web.UI; 8 using System.Web.UI.HtmlControls; 9 using System.Web.UI.WebControls;10 using System.Web.UI.WebControls.WebParts;11 using System.Xml.Linq;12 13 namespace Web.Common14 {15 //1.自己定義個類繼承自IHttpModule16 public class CheckAdminModule:IHttpModule17 {18 #region IHttpModule 成員19 20 //2.IHttpModule裡面有個主要的方法Init ,參數是HttpApplication。這就是我們的請求管道。21 public void Init(HttpApplication context)22 //3.擷取第9個事件,通過委託調OnRequest這個方法23 {24 context.AcquireRequestState+=new EventHandler(OnRequest);25 26 }27 //4.看下這個方法怎麼做的呢?28 public void OnRequest(object source, EventArgs e)29 {30 HttpApplication application = source as HttpApplication;//得到Application31 HttpContext context = application.Context;//得到請求上下文.32 Uri url = context.Request.Url;//得到當前請求的URL33 34 //5.請求Admin目錄下的檔案時,需要進行身分識別驗證,只有管理員才能訪問.35 //6.為什麼做個判斷呢?就是我的背景管理頁面都要放在單獨的檔案夾裡面,放在了admin裡面了。如果下一步請求admin檔案夾下的檔案的話,肯定會帶檔案夾的名字。就判斷一下這個路徑裡面有沒有admin?有的話,就是請求的admin36 if (url.AbsolutePath.ToLower().StartsWith("/admin"))37 {38 //adminlogin.aspx和logout.aspx不需要身分識別驗證39 //7.如果是的話,再判斷一下,這個路徑的末尾包不包含:adminlogin.aspx。包含的話,可以訪問40 if (url.AbsolutePath.ToLower().EndsWith("adminlogin.aspx"))41 {42 return;43 }44 //退出45 if (url.AbsolutePath.ToLower().EndsWith("loginout.aspx"))46 {47 return;48 }49 //8.如果是admin下的一個檔案但不是登陸退出的話,下一步就校正session,如果session為空白的話,直接跳到登陸頁面就行了。50 if (HttpContext.Current.Session["Name"] == null)51 {52 HttpContext.Current.Response.Redirect("adminlogin.aspx");53 }54 55 56 }57 }58 59 public void Dispose()60 {61 throw new NotImplementedException();62 }63 64 #endregion65 }66 }
關鍵是配置項,我們要在Web.config裡面配置一下。
四十一、Web.config
上面的內容中我們把登入給大家寫了一下,接著我們看下登入成功以後
四十二、跳轉一
四十三、跳轉二