2010-06-01 4 views
0

У меня есть роль на основе ASP.NET C# веб-приложения, в котором я помещаю объект меню внутри сессии, и у меня есть тайм-аут сеанса, сконфигурированный в web.config, как показано ниже:Session вопрос тайм-аут

<forms defaultUrl="Home.aspx" loginUrl="Login.aspx" name=".ASPXFORMSAUTH" timeout="10"></forms> 

Сначала я вошел в систему как сотрудник и ждал окончания сеанса, а затем, когда я нажимаю ссылку в меню, меня правильно перенаправляют на страницу входа с параметром ReturnUrl. Теперь, когда я пытаюсь войти в систему как администратор, я все еще вижу меню сотрудников, а не меню администратора. Метод, который загружает первое меню, проверяет, не является ли объект сеанса меню не равным нулю, если он загружает меню из сеанса, если нет, то он создает меню и помещает его в сеанс. Поэтому, когда системный тайм-аут объекта сеанса меню не очищается. Как я могу это исправить?

ответ

1

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

<sessionState cookieless="UseCookies" timeout="10" useHostingIdentity="true"/> 

Это должно убить сеанс одновременно с истечением срока аутентификации.

1

Убедитесь, что вы повторно не используете тот же браузер, когда вы проверяете вход в систему как администратор. Если вы входите в систему как сотрудник, а затем регистрируетесь в качестве администратора с тем же окном браузера, вы, вероятно, случайно используете один и тот же сеанс. Добавьте некоторые трассировки или точки останова, чтобы убедиться, что ваше меню создается, когда вы ожидаете, что это будет вместо того, чтобы просто выйти из сеанса.

Если это не проблема, то пока вы отслеживаете или выполняете код, проверьте, правильно ли ваше приложение идентифицирует, что пользователь является администратором, и создает правильное меню.

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