继承Page类判断session的问题

问题描述

这是之前的publicclassBasePage:Page{publicstringvirtualPath=ConfigurationManager.AppSettings["virtualPath"].ToString();publicBasePage(){if(Session["id"]==null){HttpContext.Current.Response.Redirect("../Login.aspx");}}}

这是修改后的publicclassBasePage:Page{publicstringvirtualPath=ConfigurationManager.AppSettings["virtualPath"].ToString();publicBasePage(){this.Load+=newEventHandler(CheckSession());}privatevoidCheckSession(objectsender,EventArgse){if(Session["id"]==null){HttpContext.Current.Response.Redirect("../Login.aspx");}}}

修改后虽然可以解决我的问题,但是有些道理不是很明白,希望各位指教一下。1.为什么普通继承Page的类不能直接在构造函数里操作session,而要加一个委托。2.为什么一般的aspx.cs里的page_load里可以操作session第一次在CSDN上提问。问了一些没有技术含量的问题,还望各位海涵。(不好意思,新手还没分)

解决方案

解决方案二:
难道没分这么惨?加个问题:每个页面继承这个basepage的时候会出现死循环是怎么回事
解决方案三:
因为前者在生成BasePage的时候执行,HttpContext.Current.Session还不存在。后者的委托,是在BasePage执行Load()的时候执行方法的,这时HttpContext.Current.Session已经存在了。
解决方案四:
死循环是因为你的Login.aspx是从BasePage继承,加载的时候CheckSession失败,就转去新的Login.aspx页面,就死循环了
解决方案五:
BasePage页面中,构造函数里面Session还没生成,所以Session是null的。在页面加载的时候才有值,不管委托的事,你可以用其他事件来检查Session是否有值。

时间: 2025-01-01 08:55:34

继承Page类判断session的问题的相关文章

aspx.cs类为什么都要继承Web.UI.Page类??

问题描述 在aspx.cs中又没有调用Web.UI.Page类的方法??还是调用了.我不知道? 解决方案 解决方案二:Page_Load()方法就是啊还有OnError,OnInit等解决方案三:楼上正确解决方案四:你可以继承你自己写的类.不过大多数情况下,你自己写的类是继承Page的.哈哈解决方案五:Page_Load()看来LZ没有系统学习过或者才接触.NET.-->大学生OR菜鸟解决方案六:to:shoushii你错了.我是大学生AND菜鸟

【spring boot】7.静态资源和拦截器处理 以及继承WebMvcConfigurerAdapter类进行更多自定义配置

   开头是鸡蛋,后面全靠编!!! ========================================================  1.默认静态资源映射路径以及优先顺序   Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration 中的配置各种属性. 建议大家使用Spring Boot的默认配置方式,提供的静态资源映射如下: classpath:/META-INF/resources classpath:/resources

Struts2实现Preparable接口和【struts2】继承ActionSupport类

Struts2实现Preparable接口 实现preparable接口,实现public void prepare() throws Exception 方法.当你访问某问action指定方法之前,最先执行prepare().这里边可以写些准备工作的代码 1 public void prepare() throws Exception { 2 3 request = ServletActionContext.getRequest(); 4 requestIp = getIpAddr(reque

java用接口、多态、继承、类计算三角形和矩形周长及面积的方法_java

本文实例讲述了java用接口.多态.继承.类计算三角形和矩形周长及面积的方法.分享给大家供大家参考.具体如下: 定义接口规范: /** * @author vvv * @date 2013-8-10 上午08:56:48 */ package com.duotai; /** * * */ public interface Shape { public double area(); public double longer(); } /** * @author vvv * @date 2013-8

详解C++中实现继承string类的MyString类的步骤_C 语言

昨天师兄又出了道测试题,让我们实现类似于string类的没有MyString类,刚开始很头疼,可是真正在自己写代码的时候又很兴奋的发现,这个过程真的是个很宝贵的机会,让我又有机会可以很好的熟悉回顾C++的很多知识-类设计,构造析构函数,成员函数,友元函数,引用,重载,字符串操作,动态内存分布.....于是昨天花了半天时间写了300多行代码,并认真的进行了相关测试.修改和总结.因为内容有点丰富,所以想分几次写出来,条理也清楚些. 类的空间分配:类给它的每个对象都分配了独立的空间去存储它的数据成员,

Java多线程继承Thread类详解第1/2页_java

调用方法: /** * 点击量/月(年)Thread */ public void yearlyClickThread() { // 获取参数 String year = getPara("year"); // 统计数据集X List<String> xList = new ArrayList<String>(); xList.add("January"); xList.add("February"); xList.add

java实现多线程的两种方式继承Thread类和实现Runnable接口的方法_java

实现方式和继承方式有什么区别呢? *区别: *继承Thread:线程代码存放在Thread子类run方法中 *实现Runnable:线程代码存放在接口的子类的run方法中 *实现方式的好处:避免了单继承的局限性 *在定义线程时,建议使用实现方式,当然如果一个类没有继承父类,那么也可以通过继承Thread类来实现多线程 *注意:Runnable接口没有抛出异常,那么实现它的类只能是try-catch不能throws *Java对多线程的安全问题提供了专业的解决方式就是同步代码块synchroniz

怎么在html中,用js判断session是否存在

问题描述 我做了一个新闻发布系统,所有的新闻都生成了静态页!现在碰到个问题:如果会员登陆了,在进入新闻页时,显示"欢迎xx",我怎么在html中,用js判断session是否存在!谢谢@! 解决方案 解决方案二:欢迎xx是在标题中的?还是在网页中的?应该是这个写JS中的吧,JS中包含一个.aspx的文件.解决方案三:欢迎xx在网页中解决方案四:functionchecsessoin(){varstrSession="<%=Session["uid"]

一个判断session是否过期的小技巧

session|技巧 前一段时间有好几个问题,提到怎么判断session是否过期.接触jspo已经很久了,但是还真没有想过这个问题,当时也就没有找到一个满意的答案给人家.当时,我提到一个方法,就是实现HttpSessionListener接口,然后在sessionDestroyed()方法中执行一些操作,表示session要过期了,因为这个方法是session.invalidate()之前监听器调用的方法.这个判断的方法显然不能让人满意.我当时问了些人,但是也没有得到一个准确的答案.正好偶然间看