Членство в ASP.NET - время ожидания пользователя раньше ожидаемого - PullRequest
1 голос
/ 08 февраля 2009

Есть ли другие причины, кроме настройки тайм-аута в web.config, которые не используются? Это может быть время ожидания по умолчанию 30 минут, но оно определенно меньше 30 минут.

        <authentication mode="Forms">
        <forms timeout="50000000" loginUrl="content/login.aspx"/>
    </authentication>

А для кода на моей странице Login.aspx:

    protected void LoginButton_Click(object sender, EventArgs e)
{
    if (Membership.ValidateUser(UserName.Text, Password.Text))
    {
        FormsAuthentication.RedirectFromLoginPage(UserName.Text, RememberMe.Checked);
    }
    else
    {
        FailureText.Text = "<br/>Login Failed. Please try again";
    }

}

[редактировать]

Я полагаю, что время ожидания составляет около 10 минут бездействия ..

Ответы [ 3 ]

2 голосов
/ 08 февраля 2009

Тайм-аут аутентификации ASP.NET может быть установлен в файле web.config (как вы показали в своем вопросе), однако он также может быть установлен в коде. Есть ли в вашем коде C # какие-либо области, которые явно устанавливают значение времени ожидания формы? Если это так, настройка в коде переопределит настройку web.config.

Другой возможностью является использование файла cookie для проверки подлинности сгенерированного кода. Обычно это делается снова, в коде C #, примерно так:

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
                                                            name,
                                                            isPersistent,
                                                            expirationTime);

Если вы создаете конкретный FormsAuthenticationTicket с настройкой тайм-аута (например) 60 минут, в то время как ваша настройка web.config показывает 30 минут, заявка, установленная из кода, переопределит настройку web.config.

Обратите внимание, что значения времени ожидания сеанса ASP.NET и сеанса IIS не должны влиять на время ожидания проверки подлинности форм.

Конечно, в качестве последней возможности, поскольку аутентификация форм обычно основывается на cookie-файлах на стороне клиента, вполне возможно, что пользователь удаляет / удаляет cookie-файлы. Это, конечно, приведет к тому, что пользователь не будет аутентифицирован на вашем сайте.

Пожалуйста, ознакомьтесь с этой записью от Скотта Форсайта на сайте weblogs.asp.net, где подробно рассматриваются эти самые проблемы.

1 голос
/ 08 февраля 2009

Возможно, в связи с тайм-аутом сеанса, вы можете изменить тайм-аут сеанса пользователей в web.config, в разделе system.web добавить:

<sessionState timeout="x minutes" />
0 голосов
/ 13 февраля 2009

Этот пост или связанные ссылки могут быть полезны:

SlipExpiration = NotReally Timeout = NotWhatIThinkItIs

...