asp.net在会话超时重定向到主页

时间:2011-04-09 13:24:42

标签: asp.net session-timeout response.redirect global-asax server.transfer

我有网页应用以及网页上的会话超时和用户互动,这需要重定向到主页/目标网页

在网上找到的解决方案

1)在应用程序的所有aspx页面的page_load中进行会话检查。 2)global.asax会话开始时的代码

public void Session_Start    
{
        Response.Redirect("home.aspx");
        // or Server.Transfer("home.aspx");
}

我要去第二个选项,让我知道 1)我是在正确的方式还是更好的解决方案? 2)在第二个选项中是否使用Response.Redirect或Server.Transfer

-Thanks

2 个答案:

答案 0 :(得分:5)

我会选择第一个并检查会议.....

在Master页面的OnInit方法中编写以下代码将轻松实现您的目标

    /// <summary>
    /// Check for the session time out 
    /// </summary>
    /// <param name="e"></param>
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        if (Context.Session != null)
        {
            //check whether a new session was generated
            if (Session.IsNewSession)
            {
                //check whether a cookies had already been associated with this request
                HttpCookie sessionCookie = Request.Cookies["ASP.NET_SessionId"];
                if (sessionCookie != null)
                {
                    string sessionValue = sessionCookie.Value;
                    if (!string.IsNullOrEmpty(sessionValue))
                    {
                        // we have session timeout condition!
                        Response.Redirect("Home.aps");
                    }
                }
            }
        }
    } 

答案 1 :(得分:2)

为什么不用JavaScript来做呢?您可以使用{/ 1}}方法,如

setTimeout

将上面的js代码块放入页面标题中,其中3000是你的会话超时。