У меня проблема с сайтом, на котором я использую 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