Когда пользователи регистрируются на моем веб-сайте asp.net (через FormsAuthentication), я храню некоторую информацию о них в текущем сеансе, такую как их UserId, FirstName и другие очень простые переменные, которые мне нужны часто на разных веб-страницах.Сессия сеанса Asp.net до FormsAuthentication
Проблема в том, что даже если таймаут сеанса установлен на длиннее тайм-аута FormsAuthentication, я заметил, что иногда текущий сеанс сбрасывается (т.е. session = null).
1) Я не понимаю, почему это происходит. Есть идеи?
2) Когда это произойдет, пользователи все еще вошли в систему (FormsAuthentication еще не приурочен), но их текущий сеанс больше не содержит данных. То, что я хотел бы сделать, это то, что, когда текущая сессия заканчивается, их попросят снова войти в систему. Для этого мне нужно будет определить тайм-аут сеанса и, когда это произойдет, вывести их из системы. Как это может быть сделано?
3) Это кажется немного излишним. Не могу ли я просто сохранить все, что храню в сеансе (UserId, FirstName и т. Д.) Непосредственно в FormsAuthentication? если да, то как? Таким образом, у меня будет доступ к этим значениям, пока они все еще будут входить в систему, независимо от текущего сеанса (который в этом случае больше не будет использоваться). Вы видите что-то не так с этой логикой? Если нет, как это можно сделать?
Dupe? http://stackoverflow.com/questions/648992/session-timeout-in-asp-net –
Dupe? http://stackoverflow.com/questions/316172/session-timeout-asp-net –
Вы получаете информацию, используя HttpContext.Current.User ?? –