gpt4 book ai didi

c# - 注销后防止页面审查

转载 作者:太空宇宙 更新时间:2023-11-03 11:24:22 24 4
gpt4 key购买 nike

这是一个在谷歌中非常有名的问题。我发现了几个实现此功能的建议。我已经实现的程序描述如下:

我在主页中添加了注销链接,点击该链接后,我会将用户重定向到注销页面。

protected void LinkButton1_Click(object sender, EventArgs e) {      
Response.Redirect("../Logout.aspx");
}

现在我在 Logout.aspx 中添加了:

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
Response.Cache.SetNoStore();
Response.AppendHeader("Pragma", "no-cache");

在Page_Load方法代码后面。

此外,我还在 Logout.aspx 中添加了一个 asp:ScriptManager 和一个 asp:Timer:

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager>
<asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick" >
</asp:Timer>

Timer1_Tick 方法是:

protected void Timer1_Tick(object sender, EventArgs e) {
FormsAuthentication.SignOut();
Session.Abandon();
FormsAuthentication.RedirectToLoginPage();
}

这是从 Logout.aspx 重定向到 Login.aspx。此外,我还在 Logout.aspx 中添加了以下 JavaScript 方法:

function disableBackButton() {
window.history.forward(1);
}
disableBackButton();
window.onload = disableBackButton();
window.onpageshow = function (evt) { if (evt.persisted) disableBackButton() }
window.onunload = function () { void (0) }

它正在工作,只有当我单击“后退”按钮,或单击多次并暂停时。但是,如果它被连续多次点击,那么我将再次被放置在主页中。

我该如何解决这个问题?

最佳答案

我使用以下注销方式清除 cookie,并且“真正”地注销我的用户时没有遇到任何问题。

编辑:

请注意,浏览器通常会在其历史记录中缓存页面,我认为您无法阻止它们在注销后显示这些页面!

FormsAuthentication.SignOut();
Session.Abandon();

// clear authentication cookie
HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
cookie1.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie1);

// clear session cookie
HttpCookie cookie2 = new HttpCookie("ASP.NET_SessionId", "");
cookie2.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie2);

FormsAuthentication.RedirectToLoginPage();

关于c# - 注销后防止页面审查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9965919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com