protected void Button2_Click(object sender, System.EventArgs e) //logout
{
if (System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
{
System.Web.HttpContext.Current.Session.Abandon(); // it isn't logout >_<
}
}
如何退出? :P
答案 0 :(得分:9)
如果您使用的是标准会员提供商和表单身份验证:
FormsAuthentication.SignOut();
HttpContext.Current.Session.Abandon();
通常是一种享受。
请注意,如果用户在浏览器中按下,他们可能会看到缓存(登录)版本。
编辑以回复评论
我的印象是FormsAuthentication.Signout:
从浏览器中删除表单身份验证票证。
由于身份验证票据完全独立于会话令牌,因此如果您希望从服务器处完全清除用户的所有相关知识,那么那一点,调用Session.Abandon是一件好事。我知道将在下一页请求中为他们创建一个新会话 - 我有兴趣看到相反的文档。
答案 1 :(得分:1)
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
这应该注销用户并将他带到登录页面。