2013-07-31 196 views
1

每当我点击注销按钮,它将我重定向到登录页面,但当我点击后退按钮时,它将我重定向到上次访问的页面。我没有使用成员资格或Windows身份验证。如何在asp.net登录页面注销

Session.Abandon(); 
Response.Cache.SetCacheability(HttpCacheability.Private); 
Response.Cache.SetCacheability(HttpCacheability.NoCache); 
Response.Redirect("LoginForm.aspx"); 
+0

你存储的cookie登录信息? – Naoe

回答

0

您使用什么样的身份验证呢?

在C#中使用表单注销代码验证将是:

// body of function 
FormsAuthentication.SignOut(); 
HttpContext.Current.Response.Redirect("Login.aspx", true); 
1

如果您使用的是会话然后摧毁注销按钮会话值单击 你可以把这样的检查在您的应用程序网页

if(Session["sessionvaribale"].Equals(null)) 
{ 
Response.Redirect("logoutpage url"); 
} 
0

其中一个原因是页面正在被浏览器缓存并从那里加载。如果您不希望在任何情况下在注销后查看任何页面,请对所有页面使用no-cache

0

如果您使用FormsAuthentication,则可能也想使用其方法注销。

Session.Abandon(); 
FormsAuthentication.SignOut(); 
Response.Redirect("index.aspx"); 

清除缓存并不适用于所有浏览器中工作,我在实验中该用户登录电子可以从后返回到前一页找到。因此,您可能希望使用JavaScript来防止用户退出,一旦他退出。

下面的文章概述了同样的事情:

http://www.aspsnippets.com/Blue/Articles/Disable-Browser-Back-Button-Functionality-using-JavaScript.aspx

它可以跨浏览器。

除此之外,你可能要检查后下,这也工作:

https://stackoverflow.com/a/5881175/309395

0

上登出点击第一个发出会话空

Session.Abandon(); 
Session.RemoveAll() 
Session.Clear(); 

任何一个

然后之后如果您使用母版页,那么在多页的情况下更好,

只是检查母版load事件是否会为null,则移动到登录页面

,如果你不使用母版页,然后检查是否会话是空的每一页