我有一个电子邮件确认控制器,我发布到。
当发生这种情况时,我需要注销,清除关于用户的会话和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.
}
问题是即使在所有这些之后......
当我重新登录时,它仍然表示电子邮件未经确认...即使它在数据库中...
如何完全清除用户会话?
答案 0 :(得分:1)
Session.Clear
将清除所有会话。
Response.Cookies.Clear
将清除所有Cookie。
并且您可以使用[NoCache]
修饰您的操作以防止其缓存