好库网 好库网首页 | 我的好库
csharp的专栏

文章分类

ASP.NET FormsAuthentication.SignOut()无法退出登录的解决方法

发布者:csharp
发布日期:2016/1/16 22:37:00   更新日期:2016/1/16 22:37:00
阅读次数:1560
评分:4.80
介绍:只用FormsAuthentication.SignOut退出登录后,cookie依旧存在,还处于登录状态。
正文:

ASP.NET只用FormsAuthentication.SignOut退出登录后,cookie依旧存在,还处于登录状态。下面是解决方法,代码如下:

public ActionResult Logout()
{
    // 避免缓存
	Response.Cache.SetAllowResponseInBrowserHistory(false);
	Response.Cache.SetCacheability(HttpCacheability.NoCache);
	Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
	Response.Cache.SetNoStore();
	Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
	Response.Expires = -1;
	Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
	Response.CacheControl = "no-cache";
	
	// 退出
	FormsAuthentication.SignOut();

	// 清除session
	Session.RemoveAll();

	// 用同名cookie覆盖原cookie
	HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
	cookie1.Expires = DateTime.Now.AddYears(-1);
	Response.Cookies.Add(cookie1);

	// 用同名session cookie 覆盖原cookie
	HttpCookie cookie2 = new HttpCookie("ASP.NET_SessionId", "");
	cookie2.Expires = DateTime.Now.AddYears(-1);
	Response.Cookies.Add(cookie2);

	// 退出
	return RedirectToAction("Index", "Home");
}

评论 [发表评论]
账号 密码 还没帐号呢,现在注册一个?

免责声明:好库网所展示的信息由买卖双方自行提供,其真实性、准确性和合法性由信息发布人负责。好库网不提供任何保证,并不承担任何法律责任。