Как удалить куки аутентификации - PullRequest
5 голосов
/ 12 января 2012

Я занимаюсь разработкой приложения ASP.NET MVC. Я внес некоторые изменения, чтобы сохранить дополнительную информацию в куки в последней версии. Немногие из моих клиентов все еще используют старую версию. Есть ли способ истечь существующие файлы cookie моего существующего клиента и заставить их снова войти в систему при подключении к моему новому приложению, размещенному в IIS?

Спасибо

Ответы [ 3 ]

21 голосов
/ 12 января 2012

Вы можете использовать статический метод SignOut :

FormsAuthentication.SignOut();

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

4 голосов
/ 12 января 2012

Я даю новое имя для своего cookie в web.config, и это, похоже, решает мою проблему: -

 <forms loginUrl="~/Account/LogOn" name="InsightWebMobileCookie2" timeout="10000" slidingExpiration="true" />
1 голос
/ 12 января 2012

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

Итак, ваши варианты:

  1. Если вы можете выяснить, кто из «старой» версии - используйте логику для истечения срока действия их cookie.
  2. Заставить всех выйти из системы один раз, если у них нет файла cookie с именем «VersionLogout». После принудительного выхода из системы установите, например, файл cookie с именем «VersionLogout», значение которого равно 1,2. Таким образом, вы знаете, что вы принудительно отключили его для определенной версии, и они (в будущем) больше не будут запрашиваться.

Вы должны поместить этот код в событие Application_AuthenticateRequest в global.asax. на этом этапе пользователь прошел аутентификацию, поэтому вы можете проверить его cookie там.

...