我正在使用ASP.NET和C#。点击退出后我正在使用它。
Session.Abandon();
Session.RemoveAll();
Page.Responce.Cache.setCacheability(HttpCacheability.NoCache);
Response.Redirect("Default.aspx");
但是在此之后,如果他们点击浏览器中的后退按钮,它将转到上一页。
有没有办法阻止这种情况?
谢谢..
修改
我确实使用了这个。
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
if (Session["LoginId"] == null)
Response.Redirect("frmLogin.aspx");
else
{
Response.ClearHeaders();
Response.AddHeader("Cache-Control", "no-cache, no-store, max-age=0, must-revalidate");
Response.AddHeader("Pragma", "no-cache");
}
}
}
因此他们单击浏览器后退按钮然后将调用页面加载,以便我们可以检查会话变量以进行身份验证。
答案 0 :(得分:2)
我发布了一个链接,我希望这能指导您并随时为您提供帮助,请点击此处
答案 1 :(得分:1)
protected void Page_Load(object sender,EventArgs e) { if(!IsPostBack) {
if (Session["Navigation"] == null)
{
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
Response.Redirect("~/Login.aspx");
} protected void lnkbtnLogOut_Click(object sender, EventArgs e)
{
Session["Navigation"] = null;
Session.Abandon();
Response.Redirect("~/Login.aspx");
} but it's not working.It still redirects to prevoios page after click on back button
答案 2 :(得分:0)
设置页面属性<outputcache=none>
答案 3 :(得分:0)
以下将以您的方式服务:
代码在浏览器中禁用缓存。
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();
或者
您可以在注销后添加脚本以在浏览器上删除历史记录。
Page.ClientScript.RegisterStartupScript(this.GetType(),"cle","windows.history.clear",true);
希望以上两种方法都能奏效。
如果会话不可用,您可以检查Session["---"]
变量的可用性,然后将用户重定向到登录/注册页面。
我的意思是,您放弃会话,这可能会破坏会话变量。因此,当用户单击后退按钮时,系统将检查会话,它将找不到,并且用户将被重定向到登录/注册页面。
如果您使用内置成员资格类进行用户管理,则使用[授权]属性。这可能会阻止用户在注销后访问页面,并将未注册的用户重定向到“登录/注册”页面。