不管用户当前在哪个页面, 只要过期了 用户才进行操作 就提示 再跳转    ,没有用模板页的话要在每个页面都判断么 这样很烦哎session

解决方案 »

  1.   

    写个基类,比如basepage,它继承于System.Web.UI.Page,然后在需要验证登录的页面继承这个basepage。其中basepage可以在构造函数或页面事件(楼主先看看页面的生命周期)中写判断用户登录验证的方法
      

  2.   

    同意3楼,现在一般都会写个基类来继承System.Web.UI.Page,然后自己建的每个页面都继承自这个基类。这样做的好处很显然,将每个页面都需要判断的地方在这个基类里写一次就好了。这是面向对象的思想的简单应用,也是当前项目开发经常采用的做法。
      

  3.   


    一般指page_load这个事件吧?那子类页面里边的 page_load 和basepage里边的page_load 会有影响不  ,还是说basepage里边的page_load先执行 就像母版页和内容页的关系那样
      

  4.   


    一般指page_load这个事件吧?那子类页面里边的 page_load 和basepage里边的page_load 会有影响不  ,还是说basepage里边的page_load先执行 就像母版页和内容页的关系那样不过我觉得page_inite 里写会好点吧 不用所用的控件什么的都生成完了,会快一点
      

  5.   


    一般指page_load这个事件吧?那子类页面里边的 page_load 和basepage里边的page_load 会有影响不  ,还是说basepage里边的page_load先执行 就像母版页和内容页的关系那样不过我觉得page_inite 里写会好点吧 不用所用的控件什么的都生成完了,会快一点
    http://blog.csdn.net/joyhen/article/details/8477969
      

  6.   

    3楼的方法可以,不过要修改每个页面,
    尝试HttpModule
    具体写法你自己查网上了
      

  7.   

    利用HttpHandler验证,如果Session丢失,则通过Response对象将登录页输出到客户端
      

  8.   


    能用母版页就用母版页吧。第二种解决方案:使用 用户控件,也就是传说中的.ascx文件,比如你定义一个CheckLogin.ascx核心代码如下:
     protected void Page_Load(object sender, EventArgs e)
        {
            if (!(new Company().CompanyID > 0)) Response.Redirect("~/Company/LoginAgain.aspx", true); // 这个控件加载时,,判断是否登录,没登录则强制跳转。 这里要注意的一点是,千万别把这个判断代码放到if (IsPostBack)块里,不然死都不懂怎么死,因为我们需要的是,无论哪个页面,只要存在有这个验证控制,则每次页面打开,刷新或者回调,都会执行这里的代码,如果加到if (IsPostBack)块里,理论上是没影响,但是,哥还是建议你别这么玩,除非你自己去测试过
        }
    然后,我们在每一个需要用到登录验证的页面都一拖一放,把上面这个用户控件丢进页面中记住!因为aspx页面解释器是从上到下,从左到右顺序解释HTML源码的,所以,为了保证你的登录验证第一时间内被执行,请尽量把CheckLogin.ascx作为位置第一的元素丢到子页面的<form id="form1" runat="server">后面,也就是尽量让它紧挨着,后面才是别的页面元素内容。这样,就能保证页面在加载后面的数据内容之前,第一时间先执行验证控件里的那段验证代码了,这样,第一时间发现没登录,就被强制跳转去了,不会因没登录而执行后面的代码出错。这里是子页面拖放验证控件后的例子:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Company_Default" %><%@ Register src="UserControls/CheckLogin.ascx" tagname="CheckLogin" tagprefix="uc1" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>
    .
    .
    .
    .
    .
    </head>
    <body>
        <form id="form1" runat="server">
        <uc1:CheckLogin ID="CheckLogin1" runat="server" /> 
    <div id="contact" class="over">
      

  9.   

    嗯嗯 这个方法和  楼上basepage的思想差不多 都挺方便的    thanks