asp.net при переадресации тайм-аута сессии на домашнюю страницу - PullRequest
1 голос
/ 09 апреля 2011

У меня есть веб-приложение и время ожидания сеанса и взаимодействие с пользователем на странице, необходимо перенаправить на домашнюю / целевую страницу

решения, найденные в сети

1) Проверка сеанса в page_loadиз всех ASPX-страниц приложения.2) код в начале сеанса global.asax

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

Я собираюсь перейти ко второму варианту, дайте мне знать 1) Правильно ли я нахожусь или какие-то более подходящие решения для этого?2) во втором варианте использовать ли Response.Redirect или Server.Transfer

-Спасибо

Ответы [ 2 ]

5 голосов
/ 02 июня 2011

Я пойду за первым и проверю сессию .....

Напишите следующий код в методе 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");
                    }
                }
            }
        }
    } 
2 голосов
/ 09 апреля 2011

Почему вы не используете JavaScript для этого?Вы можете использовать setTimeout метод, такой как

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

Поместите вышеуказанный блок кода js в заголовок страницы, который 3000 является временем ожидания вашего сеанса.

...