обрабатывать время ожидания сеансовых переменных - PullRequest
3 голосов
/ 17 февраля 2012

Мне было интересно, есть ли способ настроить приложение в web.config или где-нибудь, чтобы обрабатывать время вне сеанса. Чего я хочу добиться, так это перейти на какой-либо контроллер и сохранить дату и время, а некоторые другие значения моего сеанса, которые в переменной session ранее были установлены в ноль, поскольку сеанс get получает время ожидания

1 Ответ

0 голосов
/ 17 февраля 2012

Я не уверен, что то же самое в MVC, но в старом asp.net у меня было приложение, которое нужно было регистрировать, когда время сеанса истекло, и я сделал это в файле Global.asax.cs в Session_End

if (Session == null || Session["logout-clicked"] != null) return;
TimeSpan ts = DateTime.Now - (DateTime)Session["session.start"];
new EventLog()
{
    EventLogType = EventLogType.SessionTimedOut,
    UserId = ((UserObject)Session["UserSession"]).Id,
    DateStamp = DateTime.Now,
    LogData = "logged in for: " + (Int32)ts.TotalHours + "hrs " + ts.Minutes + "mins",
    CachedName = ((UserObject)Session["UserSession"]).Name
}.Save();

Очевидно, что вам нужно будет настроить некоторые из этих переменных сеанса в вашем методе входа в систему (если вы хотите получить такую ​​информацию, как общее время входа в систему / время сеанса), и у вас, вероятно, будут свои собственные методы.чтобы сохранить любые данные, которые вам нужно сохранить ... но, надеюсь, это может вдохновить вас на несколько идей?

У меня есть переменная сеанса "нажатой при выходе из системы" (устанавливается при щелчке по выходу из системы), потому что, когда пользовательпри щелчке по выходу из системы у него будет другой журнал, и Session_End вызывается после того, как вы вызовете Session.Abandon (), поэтому мне нужно было убедиться, что он не регистрировал выход из системы с последующим таймаутом сеанса.

...