如何删除mvc 5的会话和cookie

时间:2015-04-08 02:00:05

标签: asp.net-mvc session cookies

我有一个电子邮件确认控制器,我发布到。

当发生这种情况时,我需要注销,清除关于用户的会话和cookie ...这是因为当他们确认他们的电子邮件时,我需要一个消失的按钮,允许用户重新发送确认电子邮件。 / p>

我是这样做的:

[HttpPost]
[Authorize]
public async Task<ActionResult> ReSendEmailConfirmation(string userID)
{
    await this.SendEmailConfirmation( userID );

    //Log off to prevent stale user session
    AuthenticationManager.SignOut( DefaultAuthenticationTypes.ApplicationCookie );
    Session.Clear();
    Session.Abandon();
    Response.Cookies.Clear();

    return RedirectToAction( "ReSendEmailConfirmation" ); // I am logged out okay, but when i goto my email... click the confirmation link, then log back in... it still says my email is not confirmed. If i shut my browser down, it will then update.
}

问题是即使在所有这些之后......

当我重新登录时,它仍然表示电子邮件未经确认...即使它在数据库中...

如何完全清除用户会话?

1 个答案:

答案 0 :(得分:1)

Session.Clear将清除所有会话。 Response.Cookies.Clear将清除所有Cookie。 并且您可以使用[NoCache]修饰您的操作以防止其缓存