0

即使在注销后我也面临访问我的页面的问题。我访问了许多表单,但大多数人说禁用后退按钮。我想通过代码而不是禁用后退按钮来实现这一点。

我的问题 :

注销后我可以通过后退按钮访问上一页,注销后我可以通过键入“localhost/admin.aspx”之类的 URL 来访问...

请帮助我避免上述两个问题?我正在使用 C#..!提前谢谢了..

4

6 回答 6

0

试试这个

protected void LoginStatus1_LoggedOut(object sender, EventArgs e)
{
    FormsAuthentication.SignOut();
    Roles.DeleteCookie();
    Session.Clear();
}
于 2013-07-22T10:40:08.477 回答
0

您的页面由浏览器缓存,这有助于提高页面加载的性能。可以禁用输出缓存。您可以在http://forums.asp.net/t/1268449.aspx找到一些注意事项。

于 2013-07-22T10:40:18.637 回答
0
  1. 使用 javascript 代码禁用后退按钮。
  2. 在手动会话管理的情况下,在仅在登录后使用的页面上检查会话。在其 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));
    }
于 2013-07-22T10:48:07.743 回答
0

尝试使用上述

    Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
        Response.Cache.SetNoStore();
        Response.AddHeader("Pragma", "no-cache");
        Response.Expires = 0;
于 2013-07-22T11:13:22.213 回答
0
  1. 在登录按钮上的登录表单中单击

    Session["ABC"] = UserNameTextBox.Text;
    Session["Username"] = UserNameTextBox.Text;
    
  2. 在除 login.aspx 之外的每个页面加载事件上

    string a = Convert.ToString(Session["ABC"]);
    if (a == "")
    {
        Response.Redirect("Login.aspx");
    }
    
于 2013-07-22T11:15:49.703 回答
-1

注销时清除会话。 会话.Abandon()

于 2013-07-22T10:35:04.297 回答