日期:2014-05-19  浏览次数:20412 次

Session_End事件
我希望实现当Session失效时,跳转到登录页面。
下面是我的做法,但不能实现:
    protected   void   Session_End(object   s,EventArgs   e)
    {
        HttpApplication   app   =   (HttpApplication)s;
        HttpContext   context   =   app.Context;
        context.Response.Redirect( "login.aspx ");
    }

是不是我的思路有问题?
能不能给我个方法。
附:我希望在应用程序级做这样的处理。

------解决方案--------------------
你没理解B/S程序的特点。你不能那么判断的
------解决方案--------------------
不能在应用程序级做的,即使做,也不能在Session_End事件里做,
------解决方案--------------------
在在应用程序级处理会陷入死循环
Page_Load:

if(Session[ "x "] == null) Response.Redirect( "login.aspx ");

------解决方案--------------------
b/s是 是单一 服务 面向 多用户的

不能那么多

只能在页面程序端 判断

if(Session[ "user "] == null) Server.Transfer( "login.aspx ", false);

------解决方案--------------------
在用户的会话销毁的时候,你的服务器端代码已经完全没有对客户端的控制能力了.
------解决方案--------------------
在用户的会话销毁的时候,你的服务器端代码已经完全没有对客户端的控制能力了.
你说的对。
------解决方案--------------------
protected void Application_PostAcquireRequestState( object sender, EventArgs e )
{
if(HttpContext.Current.Request.Url.ToString().ToLower().IndexOf( "login.aspx ") == -1)
{
if (HttpContext.Current.Session[ "x "] == null)
HttpContext.Current.Response.Redirect( "Login.aspx ");
}
}