C# 防止页面缓存和后退按钮

C# 防止页面缓存和后退按钮,c#,asp.net,C#,Asp.net,我试图通过使页面过期来防止使用“后退”按钮。 我一直试图在这里找到一篇文章来帮助你,但没有任何效果 我有下面的函数,我在所有页面上首先调用它 我在Page_Load handler中称之为,这是正确的位置吗 我看不到任何好的错误,但我的应用程序的反应就像没有任何更改一样。后退/前进按钮工作正常,页面显示正常,不会过期 更新: 作为一个附加的安全层,我想要的是页面超时,这样如果他们使用后退按钮,他们就不会看到上一页。我已经覆盖了F5,这样就不会重复帖子,登录也会被覆盖,如果我在他们注销时放弃会话的

我试图通过使页面过期来防止使用“后退”按钮。 我一直试图在这里找到一篇文章来帮助你,但没有任何效果

我有下面的函数,我在所有页面上首先调用它

我在Page_Load handler中称之为,这是正确的位置吗

我看不到任何好的错误,但我的应用程序的反应就像没有任何更改一样。后退/前进按钮工作正常,页面显示正常,不会过期

更新:

作为一个附加的安全层,我想要的是页面超时,这样如果他们使用后退按钮,他们就不会看到上一页。我已经覆盖了F5,这样就不会重复帖子,登录也会被覆盖,如果我在他们注销时放弃会话的话。但是我想停止显示上一页的后退按钮,并强制他们使用应用程序导航来绕过我的应用程序

我知道这个功能无法通过渗透测试,所以我想在达到这一点之前把它覆盖掉

J


除了防止使用“后退”按钮外,您还想实现什么目标?有时,我们尝试的方法不一定适合我们的最终目标。请尝试将ExpiresAbsolute属性设置为DateTime.Now.AddDays-1d,并将Response.Expires设置为-1500;请阅读:
    protected void Page_Load(object sender, EventArgs e)
    {          
        MyWebApplication.SetPageStatus(Response);
        ....
    }

    internal static void SetPageStatus(System.Web.HttpResponse oResponse)
    {
        oResponse.ClearHeaders();
        oResponse.ExpiresAbsolute = DateTime.Now;
        oResponse.Expires = 0;
        oResponse.CacheControl = "no-cache";
        oResponse.Buffer = true;
        oResponse.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
        oResponse.Cache.SetExpires(DateTime.UtcNow);
        oResponse.Cache.SetNoStore();
        oResponse.Cache.SetRevalidation(System.Web.HttpCacheRevalidation.AllCaches);
    }