现在的位置: 首页 > 综合 > 正文

登录测试页面

2012年09月11日 ⁄ 综合 ⁄ 共 1991字 ⁄ 字号 评论关闭

三十八、新建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.Common
14 {
15     //1.自己定义个类继承自IHttpModule
16     public class CheckAdminModule:IHttpModule
17     {
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;//得到Application
31             HttpContext context = application.Context;//得到请求上下文.
32             Uri url = context.Request.Url;//得到当前请求的URL
33              
34             //5.请求Admin目录下的文件时,需要进行身份验证,只有管理员才能访问.
35             //6.为什么做个判断呢?就是我的后台的管理页面都要放在单独的文件夹里面,放在了admin里面了。如果下一步请求admin文件夹下的文件的话,肯定会带文件夹的名字。就判断一下这个路径里面有没有admin?有的话,就是请求的admin
36             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         #endregion
65     }
66 }
复制代码

关键是配置项,我们要在Web.config里面配置一下。

                       

四十一、Web.config

上面的内容中我们把登录给大家写了一下,接着我们看下登录成功以后

 

四十二、跳转一

 

四十三、跳转二

 

抱歉!评论已关闭.