zoukankan      html  css  js  c++  java
  • 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存在则通过,如果不存在侧直接跳转到登录页面。

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

  • 相关阅读:
    99%的人都理解错了HTTP中GET与POST的区别
    idea 使用
    一道java算法题
    记一次jedis并发使用问题JedisException: Could not return the resource to the pool
    我珍藏的神兵利器
    记一次诡异的debug
    spring cloud config
    spring mvc 集成quartz
    git使用下
    Mongo--03 mongo副本集、备份与恢复
  • 原文地址:https://www.cnblogs.com/shinelhui/p/3152191.html
Copyright © 2011-2022 走看看