asp.net при перенаправлении времени ожидания сеанса на домашнюю страницу

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

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

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

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

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

-Спасибо


person Yogesh    schedule 09.04.2011    source источник


Ответы (2)


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

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

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

person Ahmed Magdy    schedule 09.04.2011
comment
Не могли бы вы сообщить мне преимущество по сравнению со вторым решением (я упомянул). во втором просто строка кода в файле global.asax. - person Yogesh; 09.04.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");
                    }
                }
            }
        }
    } 
person Pranay Rana    schedule 02.06.2011