我希望实现当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 ");
}
}