Как истечь срок действия файла cookie для автоматического входа, когда пользователь меняет пароль в ASP.NET/ASP.NET MVC? - PullRequest
0 голосов
/ 03 ноября 2010

Я использую метод проверки подлинности формы ASP.NET в своем проекте, чтобы сохранить информацию для входа в систему в качестве идентификатора пользователя в файле cookie пользователя, как показано ниже.Работает хорошо, без проблем.

FormsAuthentication.SetAuthCookie(userInfo.id.ToString(), model.AutoLogin);

Но проблема возникает, когда пользователь использует автоматический вход, а затем он меняет свой пароль.Я вижу, что на каком-то сайте вам придется заново входить в систему при смене пароля.Это довольно легко заставить текущую страницу выйти и снова войти в систему.

Но я не нахожу какой-либо хорошей идеи заставить другие файлы cookie автоматического входа в другой браузер снова войти в систему.У меня есть довольно уродливая идея сделать это, но мне это не нравится.

  1. Сохранить дату последнего изменения пароля в пользовательских данных.
  2. Поместите это в файл cookie аутентификации, какследующий код.

    FormsAuthentication.SetAuthCookie (userInfo.id.ToString () + '|' + userInfo.ChangePasswordDate, model.AutoLogin);

У вас естьЛюбая лучшая идея для решения этого вопроса, которые работают с ASP.NET и ASP.NET MVC?

Спасибо,

1 Ответ

3 голосов
/ 03 ноября 2010

Файл cookie аутентификации содержит только зашифрованное имя пользователя. Таким образом, либо вы действительно заставляете пользователя повторно войти в систему, выйдя из него (FormsAuthentication.SignOut), либо вы ничего не делаете, в этом случае старый cookie все еще действителен, все еще аутентифицирован, но его пароль был изменен в хранилище данных, чтобы в следующий раз он попытался чтобы войти, ему нужно будет использовать этот новый пароль.

...