• ASP.NET 登录验证 ihttpmoudle


    问题:

    1.iis版本不同(IIS7.0,应用程序池采用的是集成模式,换成经典模式才起作用.)

    在 IIS 7 以下的版本中,应用以下配置:

    <system.web>
      <httpModules>
        <add name="Cftea.MyHttpModule" type="CfteaHttpModule程序集" />
      </httpModules>
    </system.web>

    在 IIS 7 及以上的版本中,应用以下配置

    <system.webServer>
      <modules>
        <add name="Cftea.MyHttpModule" type="CfteaHttpModule程序集" />
      </modules>
    </system.webServer>

    <add name="命名空间.名字" type="程序集名字" />

    例如:

    <add name="web.common.MyModule" type="web" />

    2.具体实现

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace login.common
    {
    public class MyMoudle : IHttpModule
    {
    public void Dispose()
    {
    throw new NotImplementedException();
    }
    
    public void Init(HttpApplication context)
    {
    context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute);
    }
    
    private void context_PreRequestHandlerExecute(object sender, EventArgs e)
    {
    HttpApplication ha = (HttpApplication)sender;
    int length = ha.Context.Request.Url.Segments.Length;
    string a = ha.Context.Request.RawUrl;
    string path = ha.Context.Request.Url.Segments[length - 1].ToString(); //获得访问的页面
    bool IsLogingPage = path.ToLower().Equals("login.aspx"); //比较是否是Login.aspx 是就不进入
    if (!IsLogingPage)
    {
    //var CookiesDemo = ha.Context.Request.Cookies["UserID"];
    var CookiesDemo = ha.Session["UserID"];
    if (CookiesDemo == null ||CookiesDemo.Equals(""))
    {
    
    //ha.Context.Response.Redirect("/Login.aspx");
    ha.Context.Response.Write("<script>alert('login failed!');url='/login.aspx?url="+ a + "';if(window.parent!=null){window.parent.location=url;}else{this.location=url;};</script>");
    ha.Context.Response.End();
    }
    }else
    {
    }
    }
    }
    }
  • 相关阅读:
    关于Ajax中this失效
    添加时间周期一年半年季度
    回车事件
    alt与title
    关于checked="checked"却不显示选中的“对勾”
    正则表达式的使用
    关于JQ 查找不到对象的clientHeight,
    Mysql笔记之 -- 开启Mysql慢查询
    Mysql笔记之 -- 小试MYSQL主从配置
    Linux系统学习笔记之 1 一个简单的shell程序
  • 原文地址:https://www.cnblogs.com/uftwkb24/p/9984306.html
Copyright © 2020-2023  润新知