• HttpModule用户的验证


    HttpModule是向实现类提供模块初始化和处置事件。当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是说此时对于HTTP请求来讲,HttpModule是一个HTTP请求的“必经之 路”,所以可以在这个HTTP请求传递到真正的请求处理中心(HttpHandler)之前附加一些需要的信息在这个HTTP请求信息之上,或者针对截获 的这个HTTP请求信息作一些额外的工作,或者在某些情况下干脆终止满足一些条件的HTTP请求,从而可以起到一个Filter过滤器的作用。

    1.首先你要实现IHttpModule接口这个接口只有两个方法,一个是Init方法一个Dispose方法.

    2.在Init方法里边注册事件:

    1 public void Init(HttpApplication context)
    2  {
    3       context.AcquireRequestState+=new EventHandler(OnRequest);
    4            
    5  }
    View Code

    3.写注册事件的方法:

     1 public void OnRequest(object source, EventArgs e)
     2         {
     3 
     4             HttpApplication application = source as HttpApplication;//得到Application
     5             HttpContext context = application.Context;//得到请求上下文.
     6             Uri url = context.Request.Url;//得到当前请求的URL
     7              
     8             //请求Admin目录下的文件时,需要进行身份验证,只有管理员才能访问.
     9             if (url.AbsolutePath.ToLower().StartsWith("/admin"))
    10             {
    11                 //adminlogin.aspx和logout.aspx不需要身份验证
    12                 if (url.AbsolutePath.ToLower().EndsWith("adminlogin.aspx"))
    13                 {
    14                     return;
    15                 }
    16                 if (url.AbsolutePath.ToLower().EndsWith("loginout.aspx"))
    17                 {
    18                     return;
    19                 }
    20                 if (HttpContext.Current.Session["Name"] == null)
    21                 {
    22                     HttpContext.Current.Response.Redirect("adminlogin.aspx");
    23                 }
    24 
    25 
    26             }
    27         }
    View Code

    4.配置web.config:

    1 <httpModules>
    2       <add name="CheckAdminModule" type="Web.Common.CheckAdminModule"/>
    3     </httpModules>
    View Code

    这个方法很简单但是很使用。主要原理是在HttpModule里边进行了admin文件的过滤,在http访问过来的时候用HttpModule进行对session的验证如果session存在则通过,如果不存在侧直接跳转到登录页面。

    程序中实现的方法有很多中。多总结一些对于提升自己的能力有很大的帮助。

  • 相关阅读:
    Ajax缓存的几种处理方式
    Day--1--网络协议
    Day4--js--递归各种大法渡难关
    你以为的BUG--BFC给你解决!
    Day3--js--可恶之变量声明提升大法.。。
    Day2--js--烧脑睿智循环的练习题
    ERwin创建逻辑模型
    ERwin入门
    Oracle存储过程由例子到理论
    oracle存储过程
  • 原文地址:https://www.cnblogs.com/shinelhui/p/3152191.html
Copyright © 2020-2023  润新知