В Asp.Net сеанс и «Вход в систему» - это не одно и то же.
Оба (обычно) контролируются файлами cookie, но файлы cookie являются отдельными.
Чтобы контролировать, как долго сохраняется сеанс, см. ответ Jonas T
.
Чтобы контролировать, как долго пользователь остается в системе, вы можете использовать timeOut для элемента <forms ... />
:
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="120" slidingExpiration="true"/>
</authentication>
...
</system.web>
Чтобы избавиться от вашей проблемы, вы должны убедиться, что время ожидания сеанса не меньше времени ожидания проверки подлинности форм.
Если вы разрешаете сохранение файлов cookie при проверке подлинности с помощью форм («Запомнить меня»), то никаких гарантий нет. В этом случае вам просто нужно установить время ожидания сеанса на «достаточно долгое» в соответствии с некоторыми критериями/спецификациями.
Изменить. Также проверьте настройки пула приложений (в IIS), где развернут сайт. И особенно проверьте, что такое «Idle Time-out
». Если установлено низкое значение (я думаю, значение по умолчанию — 20 минут), то IIS закроет пул приложений, если за это время не поступило ни одного запроса. Это (конечно) завершает любые существующие внутрипроцессные сеансы.
person
user1429080
schedule
05.07.2012