• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 几种判断asp.net中session过期方法的比较

几种判断asp.net中session过期方法的比较

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了逻辑判断有几种题型,政治面貌有哪几种,党内纪律处分有哪几种,声乐分为几种唱法,暴雨预警信号有几种等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

方法一:最麻烦也是最容易想到的方法,在每个页面的page_load()方法里面判断:

                    //登陆成功的情况
                    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "", "<script>alert('登录成功!')</script>");
                }
                else
                {
                    //过期,重新登录
                    Response.Redirect("LoginForm.aspx");

                }
            }
        }
</div>

    缺点:代码冗余,重复写判断session代码。

 

方法二:重写HttpModule中的Init()方法,然后判断session过期情况。

  1.新建一个继承IHttpModule接口的类Module ,让Module类实现IHttpModule接口成员。

  2.在Init()方法中对Context进行注册AcquireRequestState事件。

  3.在AcquireRequestState方法中实现判断session代码。

namespace JudgeSessionOutTime
{
    //1.继承IHttpModule类,实现接口成员
    public class Module:IHttpModule
    {
        #region IHttpModule 成员

        public void Dispose()
        {
            throw new NotImplementedException();
        }

        //2.在Init()方法中对Context进行注册AcquireRequestState事件。
        public void Init(HttpApplication context)
        {
            context.AcquireRequestState+=new EventHandler(context_AcquireRequestState);
        }

        //3.完善AcquireRequestState方法,然后判断session过期
        public void context_AcquireRequestState(object sender, EventArgs e)
        {
            HttpApplication app = (HttpApplication)sender;

            if (app.Context.Session["username"] == null)
            {
                app.Response.Write("<script>alert('session到期!');</script>");
            }
        }

        #endregion
    }
}
</div>

4.配置web.config文件,在<system.web>中添加以下代码

  优点:效率高,代码无冗余,一次配置,全程受用。

  原理:实现IHttpModule接口的类Module是在执行页面之前就会执行。即:在page_load()事件执行之前,就会执行Module,然后执行判断session方法,未过期,继续执行,过期,就会执行相应操作,就不用执行page_load()页面的方法了。

  感悟:说实话,对于这点,在做网站登录,然后判断用户名方面,我觉得不太适合,因为,一旦程序开始加载,就会执行module类方法,那时候session还是空,所以无论怎样,都不会放下走,一直停在登录界面(个人见解,欢迎各位拍砖!)

 

方式三:重写继承page的OnInit()虚方法,在需要的界面上,继承这个类。

  1.新建继承page类的类JudgeSession,实现接口成员。

  2.重写OnInit()方法,判断session情况。

  3.在需要判断session过期情况的页面上,继承该JudgeSession类,而不是page类,从而实现效果。

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace JudgeSessionOutTime
{
    public class JudgeSession : System.Web.UI.Page
    {
        protected override void OnInit(EventArgs e)
        {
            if (Session["username"] == null)
            {
                Response.Write("session过期!");
            }
            else
            {
                Response.Write("session没有过期,用户名:"+Session["username"].ToString());
            }
        }

    }
}
</div>

  优点:方法灵

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 几种判断asp.net中session过期方法的比较

相关文章

  • 2017-05-11asp.net实现服务器文件下载到本地的方法
  • 2017-05-11ASP.NET Mvc开发之删除修改数据
  • 2017-05-11解析asp.net的分页控件
  • 2017-05-11ASP.NET购物车实现过程详解
  • 2017-05-11asp.net实现word文档在线预览功能的方法
  • 2017-05-11c# 在WebBrowser中用SendMessage模拟鼠标点击
  • 2017-05-11解析ABP框架领域层中的实体类与仓储类
  • 2018-08-20MVC5下拉框绑定的方法(单选)
  • 2017-05-11ASP.NET学习路线(详细)
  • 2017-05-11asp.net 产生随机颜色实现代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP.Net页尾中添加JavaScript的最佳方法实战分享
    • .Net下二进制形式的文件(图片)的存储与读取详细解析
    • asp.net 验证码的简单制作(vb.net+C#)
    • 在ASP.NET Core 中发送邮件的实现方法(必看篇)
    • 在ASP.NET 2.0中操作数据之二:创建一个业务逻辑层
    • ASP.NET 图片防盗链的实现原理分析
    • ASP.NET 2.0写无限级下拉菜单
    • asp.net通过动态加载不同CSS实现多界面
    • ASP.NET Core Project.json文件(5)
    • ASP.NET中实现把form表单元素转为实体对象或集合

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有