2014-10-29 2 views
0

Я использую asp.net с C# для моего проекта.Как пропустить сеанс ASP, если пользователь не будет взаимодействовать с веб-страницей в течение определенного времени?

Я хочу истечь Session, если пользователь не будет взаимодействовать с веб-сайтом в течение определенного времени (т. Е. Сеанс истекает, если пользователь не будет взаимодействовать с веб-сайтом в течение следующих 10 минут).

Я использую конфигурацию web.config для session timeout, как показано ниже.

<sessionState mode="InProc" timeout="10" />

Проблема: но истекает session после каждых 10 мин. даже если пользователь взаимодействует с веб-сайтом. Результатом является то, что пользователь должен войти в систему снова и снова через каждые 10 минут.

Но, я хочу, чтобы session должен истечь через 10 мин. если пользователь не взаимодействует с веб-сайтом в течение 10 минут.

+1

Есть также 10-минутный тайм-аут определен где-то еще? Например, в IIS в конфигурации пула приложений? –

+0

@RoyDictus - нет Я не указывал тайм-аут в пуле приложений IIS - должен ли я? – prog1011

+0

Нет, но похоже, что это не тот тайм-аут состояния сеанса, который является проблемой, а другой. Посмотрите повсюду в своем приложении и настройке IIS на время ожидания. –

ответ

3

Вы используете метод аутентификации?

Если вы можете добавить свойство

SlidingExpiration="true" 

в конфигурации, он сбрасывает тайм-аут, если> половину времени истекшее

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.slidingexpiration(v=vs.110).aspx

+0

Да, это то, что я хочу точно. Он работает так, как мне нужно ...! Спасибо :) – prog1011

+0

Сессия, вероятно, все еще доступна, только время ожидания аутентификации, это отдельные. –

0

вы должны проверить несколько вещей

1: Попробуйте использовать режим sessionstate = stateserver.

2: Сброс или перезапуск пула приложений IIS. Перезапуск или повторное использование пула приложений после периода исправления?

3: Проверьте, используете ли вы какие-либо дополнительные настройки времени сеанса. Он отображается только в файле web.config.

4: (. Просто попробуйте, если выше не работает) Попробуйте использовать Server.Tranfer вместо Response.Redirect()

Смежные вопросы