Срок действия файла cookie проверки подлинности ASP.NET Forms не истек - PullRequest
2 голосов
/ 26 апреля 2010

У меня проблема с сайтом, на котором я использую ASP.NET SQL Membership Provider. Все работает правильно при первом входе в систему. То есть, пользователь перенаправляется на страницу входа в систему, и после успешного входа в систему ему отправляется исходная страница, которую он запросил.

Однако после того, как они закроют браузер и снова откроют его, cookie-файл аутентификации все еще там. Они могут перейти на любую страницу, требующую аутентификации, без входа в систему.

У меня есть другой сайт, на котором я использую того же поставщика членства, и он ведет себя по-разному. Когда я проверяю файлы cookie в Firefox, на сайте с проблемой «Истекает: понедельник, 26 апреля 2010 г. 14:23:50» у сайта, который работает правильно, есть «Истекает: в конце сессии».

Параметр, определяющий срок действия, одинаков для обоих сайтов:


    authentication mode="Forms"
      forms name=".MySite" protection="All" path="/"
             loginUrl="mySite/login.aspx" slidingExpiration="true" timeout="30"   
             requireSSL="false"
    authentication

(я удалил разделители элементов в приведенной выше ссылке на код, так как это испортило редактор)

В конечном итоге я хочу, чтобы время ожидания составляло 30 минут, но я также хочу, чтобы срок действия файла cookie истек, когда пользователь закрывает браузер. Я не хочу, чтобы он оставался активным на машине в течение 30 минут. Вот как он ведет себя на другом сайте, над которым я работаю, и я не уверен, в чем разница.

Спасибо -Shane

1 Ответ

3 голосов
/ 26 апреля 2010

Вы пытались установить постоянство cookie в false в коде на странице входа в систему, где записывается cookie?

Пример:

FormsAuthentication.RedirectFromLoginPage(userName, false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...