Ответ 1
Если вы хотите установить тайм-аут на 20 минут, используйте что-то вроде этого:
<configuration>
<system.web>
<sessionState timeout="20"></sessionState>
</system.web>
</configuration>
Я очень старался, но не могу найти решение о том, как установить значение тайм-аута сеанса для сеанса in-process для веб-приложения ASP.Net.
Я использую VSTS 2008 +.Net 3.5 + С#. Вот что я написал сам, чтобы установить тайм-аут на 1 минуту, правильно ли это?
Я написал в разделе system.web в web.config
<sessionState timeout="1" mode="InProc" />
Если вы хотите установить тайм-аут на 20 минут, используйте что-то вроде этого:
<configuration>
<system.web>
<sessionState timeout="20"></sessionState>
</system.web>
</configuration>
Значение, которое вы устанавливаете в атрибуте timeout
, является одним из правильных способов установки значения таймаута сеанса.
Атрибут timeout
указывает количество минут, в течение которых сеанс может простаивать до его отказа. Значение по умолчанию для этого атрибута - 20.
Назначив значение 1 этому атрибуту, вы отключили сеанс через 1 минуту после его простоя.
Чтобы проверить это, создайте простую страницу aspx и напишите этот код в событии Page_Load,
Response.Write(Session.SessionID);
Откройте браузер и перейдите на эту страницу. Идентификатор сеанса будет напечатан. Подождите минуту, чтобы пройти, а затем нажмите обновление. Идентификатор сеанса изменится.
Теперь, если моя догадка правильная, вы хотите, чтобы ваши пользователи выходили из системы, как только сессия заканчивалась. Для этого вы можете настроить страницу входа в систему, которая будет проверять учетные данные пользователя, и создать такую переменную сеанса, как это -
Session["UserId"] = 1;
Теперь вам нужно выполнить проверку на каждой странице для этой переменной, как это -
if(Session["UserId"] == null)
Response.Redirect("login.aspx");
Это пример с голубыми костями, как это будет работать.
Но для обеспечения безопасности ваших приложений для обеспечения качества используйте классы Роли и членство, предоставляемые ASP.NET. Они обеспечивают аутентификацию на основе форм, которая намного надежнее обычной проверки подлинности на основе сеанса, которую вы пытаетесь использовать.
Используйте это в web.config
:
<sessionState
timeout="20"
/>
если это не работает из web.config. вам нужно установить его из IIS.