zoukankan      html  css  js  c++  java
  • 登录测试页面

    三十八、新建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

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

     

    四十二、跳转一

     

    四十三、跳转二

     

  • 相关阅读:
    WeTypecho程序配置
    XX人事系统.nsi
    query-validate 插件
    数据库操作技巧 之 oracle连表update、跨库查询、恢复被删除数据、解决锁表
    Oracle中添加银行家四舍五入
    Java生成MD5的方法,简单封装并转为32位小写
    springMVC中使用oracle批量插入的书写方法
    前端ajax能访问到后台的controller中但是前端报错404
    远程连接Oracle 数据库连接报错ORA-12638身份检索失败
    SQL state [72000]; error code [1013]; ORA-03111: 通信通道收到中断; java.sql.SQLException: ORA-01745: 无效的主机/绑定变量名;java.sql.SQLException: ORA-01013: 用户请求取消当前的操作
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/2820725.html
Copyright © 2011-2022 走看看