ASP.NET中的URL过滤实现代码


本文摘自PHP中文网,作者小葫芦,侵删。

下面是类的定义。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

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");

                 }

             }

         }

     }

 }

为了实现过滤的效果,Filters类需要实现IHttpMoeld接口,实现该接口需要有两个方法,一个是Dispose,另一个是Init。Init的参数是一个HttpApplication类型的实例,利用这个实例注册一些事件。由于现在要对URL进行过滤,因此注册的是AcquireRequestState事件。类似事件罗列如下

阅读剩余部分

相关阅读 >>

asp.net中的URL过滤实现代码

更多相关阅读请进入《URL过滤》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...