1

我有网络应用程序和页面上的会话超时和用户交互,这需要重定向到主页/登陆页面

网上找到的解决办法

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

-谢谢

4

2 回答 2

5

我会去第一个并检查会话......

在母版页的 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");
                    }
                }
            }
        }
    } 
于 2011-06-02T04:41:16.113 回答
2

你为什么不使用 JavaScript 来做呢?你可以使用setTimeout类似的方法

<script type="text/javascript">
setTimeout('window.location = "home.aspx"', 3000);
</script>

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

于 2011-04-09T13:37:11.347 回答