如何删除身份验证Cookie

时间:2012-01-12 13:26:13

标签: asp.net asp.net-mvc-3 cookies session-cookies

我正在开发ASP.NET MVC应用程序。我做了一些更改,以便在最新版本的cookie中保存一些额外的信息。 我的客户很少仍在运行旧版本。 有没有办法让现有客户的现有cookie到期,并强制他们在连接到我在IIS中托管的新应用程序时再次登录?

谢谢,

3 个答案:

答案 0 :(得分:21)

您可以使用SignOut静态方法:

FormsAuthentication.SignOut();

这将删除身份验证Cookie,并且后续请求将不会对用户进行身份验证。我强调了后续这个词,因为在调用这个方法后你应该重定向。

答案 1 :(得分:4)

我在web.config中为我的cookie提供了更新的名称,这似乎解决了我的问题: -

 <forms loginUrl="~/Account/LogOn" name="InsightWebMobileCookie2" timeout="10000" slidingExpiration="true" />

答案 2 :(得分:1)

此处的问题是您无法读取Cookie过期日期,因此您无法从Cookie中了解旧用户是谁。

所以你的选择是:

  1. 如果你能找出谁来自'旧'版本 - 有逻辑使他们的cookie过期。
  2. 如果他们没有名为“VersionLogout”的cookie,则强制所有人退出一次。一旦强制退出,请设置一个名为“VersionLogout”的cookie,例如值为1.2,这样您就知道您已经强制退出特定版本,并且不会再次提示他们(向前)。
  3. 您可以将该代码放在global.asax中的Application_AuthenticateRequest事件中。此时用户已经过身份验证,因此您可以在那里检查他们的cookie。