即使在注销后我也面临访问我的页面的问题。我访问了许多表单,但大多数人说禁用后退按钮。我想通过代码而不是禁用后退按钮来实现这一点。
我的问题 :
注销后我可以通过后退按钮访问上一页,注销后我可以通过键入“localhost/admin.aspx”之类的 URL 来访问...
请帮助我避免上述两个问题?我正在使用 C#..!提前谢谢了..
即使在注销后我也面临访问我的页面的问题。我访问了许多表单,但大多数人说禁用后退按钮。我想通过代码而不是禁用后退按钮来实现这一点。
我的问题 :
注销后我可以通过后退按钮访问上一页,注销后我可以通过键入“localhost/admin.aspx”之类的 URL 来访问...
请帮助我避免上述两个问题?我正在使用 C#..!提前谢谢了..
试试这个
protected void LoginStatus1_LoggedOut(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
Roles.DeleteCookie();
Session.Clear();
}
您的页面由浏览器缓存,这有助于提高页面加载的性能。可以禁用输出缓存。您可以在http://forums.asp.net/t/1268449.aspx找到一些注意事项。
在手动会话管理的情况下,在仅在登录后使用的页面上检查会话。在其 PageLoad 事件中使用类似这样的东西
如果(会话[“SomeVar”]==null){
// redirect to login page or somewhere else }
如果您使用的是Membership Provider,那么我认为它会自动为您服务。
您还可以设置缓存过期策略以避免返回按钮。下面是相同的代码
private void DisableClientCaching()
{
// Do any of these result in META tags e.g. <META HTTP-EQUIV="Expire" CONTENT="-1">
// HTTP Headers or both?
// Does this only work for IE?
Response.Cache.SetCacheability(HttpCacheability.NoCache);
// Is this required for FireFox? Would be good to do this without magic strings.
// Won't it overwrite the previous setting
Response.Headers.Add("Cache-Control", "no-cache, no-store");
// Why is it necessary to explicitly call SetExpires. Presume it is still better than calling
// Response.Headers.Add( directly
Response.Cache.SetExpires(DateTime.UtcNow.AddYears(-1));
}
尝试使用上述
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
Response.Cache.SetNoStore();
Response.AddHeader("Pragma", "no-cache");
Response.Expires = 0;
在登录按钮上的登录表单中单击
Session["ABC"] = UserNameTextBox.Text;
Session["Username"] = UserNameTextBox.Text;
在除 login.aspx 之外的每个页面加载事件上
string a = Convert.ToString(Session["ABC"]);
if (a == "")
{
Response.Redirect("Login.aspx");
}
注销时清除会话。 会话.Abandon()