目前我ASP.Net Web窗体使用FormsAuthentication.SignOut();
问题是这样的:如何正确退出形式的认证
用户去loginpage并在日志和被重定向到网页A
在第A他点击在注销并被重定向到
loginpage。
在登录页面加载事件我有FormsAuthentication.SignOut()。
我认为这会破坏身份验证cookie。
但是用户仍然可以使用浏览器的后退按钮进入A页面!
这是接受吗?如果没有什么是最好的方式来解决
=============== 我尝试以下,但仍没有运气:
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
问题本身是重复的,但在其他问题中没有提供答案。所以这不是一个可行的答案。
此外,这些不工作:
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
FormsAuthentication.SignOut();
Session.Abandon();
也试过FormAthentcation.RedirectToLoginPage
还是后退按钮工程。
更新:我发现了一种解决方法,但只有在浏览器的后台按钮导致任何表单/页面事件触发时才能使用。你知道后退是否触发任何形式的事件?
可能重复[ASP.NET认证登录和使用浏览器的后退按钮退出] (http://stackoverflow.com/questions/2686946/asp-net-authentication-login-and-logout-with-browser-back-button) –
如果你点击返回按钮你要去页面A.once刷新页面并检查它是否是页面A或登录页面。在我看来,通过点击显示认证页面的后退按钮根本不是好习惯。 – Ajay
但是这似乎是非常标准的。例如,看看gmail。如果用户注销,然后单击后退按钮,他将停留在登录页面上。 –