我有注销操作,可以注销并重定向到登录页面,但是当我在没有注销的情况下关闭浏览器并在注销时再次打开时,它会直接重定向到登录操作而无需访问注销操作
[OutputCache(NoStore=true, Duration=0)]
public ActionResult LogOut()
{
FormsAuthentication.SignOut();
Session.Abandon();
HttpContext.User = null;
HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
cookie1.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie1);
HttpCookie cookie2 = new HttpCookie("ASP.NET_SessionId", "");
cookie2.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie2);
HttpCookie cookie3 = new HttpCookie("myCookie");
cookie3.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie3);
FormsAuthentication.RedirectToLoginPage();
return null;
}
这是我的webconfig设置
<authentication mode="Forms">
<forms loginUrl="~/Account/LoginPage"
defaultUrl="~/User/MyKids"
timeout="99999999"
slidingExpiration="true" />
</authentication>
答案 0 :(得分:0)
我不确定你的意思&#34;再打开&#34;但是如果你试图访问系统的一部分需要&#34;登录&#34;用户,然后系统检测到您没有有效的身份验证,并且您将重定向到配置中指定的登录页面。它不会尝试将您注销,只是尝试登录。在这种情况下这是正常行为。
答案 1 :(得分:0)
这是默认行为。我猜你使用会话cookie的表单身份验证。因此,当您再次打开浏览器并访问注销页面时,forms-authentication-module会检测到没有有效的cookie可用,并将您重定向到登录页面。
将createPersistentCookie设置为true,以记住用户:http://msdn.microsoft.com/en-us/library/twk5762b%28v=vs.110%29.aspx