1

每当我单击注销按钮时,它会将我重定向到登录页面,但是当我单击后退按钮时,它将我重定向到上次访问的页面。我没有使用会员资格或 Windows 身份验证。

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

5 回答 5

1

如果您正在使用会话,则在注销按钮单击时销毁会话值,您可以将这样的检查放在您的应用网页中

if(Session["sessionvaribale"].Equals(null))
{
Response.Redirect("logoutpage url");
}
于 2013-07-31T11:41:14.947 回答
0

那您使用哪种身份验证?

在 c# 中,使用表单身份验证注销的代码将是:

// body of function
FormsAuthentication.SignOut();
HttpContext.Current.Response.Redirect("Login.aspx", true);
于 2013-07-31T11:40:12.760 回答
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

于 2013-07-31T12:05:54.993 回答
0

在注销时单击首先使会话为空

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

任何人

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

如果会话为空,只需检查母版页加载事件,然后转到登录页面

如果您没有使用母版页,则检查每个页面的会话是否为空

于 2013-07-31T12:19:08.893 回答
0

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

于 2013-07-31T12:00:39.893 回答