У меня проверка подлинности формы работает нормально с установкой истечения срока действия файла cookie за 3 месяца:
FormsAuthentication.Initialize();
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, this.txtUsername.Text, DateTime.Now
, DateTime.Now.AddMonths(3), true, string.Empty);
, поэтому, даже если IIS перезапустится или произойдет перестройка проекта, пользователь все равно будет аутентифицирован до тех пор, пока он не решит выйти из системы за 3 прошедших месяца.
как для провайдера пользовательских ролей [авторизующая часть], когда логин пользователя isValid (), я добавляю переменную сеанса:
HttpContext.Current.Session.Add("userinfo", userInfo);
, но, как мы знаем, срок действия сеанса истекает после изменения web.config,сборка проекта, перезагрузка IIS или 20 минут по умолчанию.
все, что я хочу, - это заставить систему сохранять сеанс ["userinfo"] так же, как аутентификация [cookie], но, конечно, без установки userinfo в cookie, потому что этонебезопасно, даже если userId считается брешей в безопасности и хранится в cookie!
, как это сделать?я думал сохранить идентификатор пользователя в cookie, но зашифровал его, если я обнаружил, что сессия истекла, но пользователь все еще аутентифицирован, я перезагружу userInfo из БД, но достаточно ли это хороший или лучший подход?а как насчет хранения userInfo в authTicked в (string.Empty) в приведенном выше фрагменте кода, доступно позже и как его использовать?