0

特定のサイトの履歴を削除しようとしています。ページをログアウトしてから戻るボタンを押すと、ページは前のページに移動しますが、ユーザーがログアウトしてから戻るボタンを押すと、ログインページと同じページになり、前のページには移動しません。セッションの放棄、キャッシュの削除などのすべての方法を試していますが、問題は解決していません。JavaScript も使用できます。

protected void btnLogout_Click(object sender, EventArgs e)
{
    HttpContext.Current.Cache.Remove("");
    HttpContext.Current.Session.Clear();
    HttpContext.Current.Session.Abandon();
    Response.Redirect("../Login.aspx");
} 
4

6 に答える 6

1

JavaScriptを使用して試すことができます:

 <script type="text/javascript">
    //Logout clears all visited pages for Back Button
    function noBack() { window.history.forward(); }
    noBack();
    window.onload = noBack;
    window.onpageshow = function (evt) { if (evt.persisted) noBack(); }
    window.onunload = function () { void (0); }
</script>
于 2013-08-26T13:05:13.153 に答える
0

次の 2 つのオプションがあります。

ページがキャッシュされないようにする JavaScript を使用してログアウトした後、ユーザーが前のページに戻らないようにします。

最初のオプションをお勧めしますが、うまくいかない場合は、ここで説明した 2 番目のオプションを選択してください

于 2013-08-26T13:03:42.470 に答える
0

コードビハインドに以下のコードを追加します

protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);
        string strDisAbleBackButton;
        strDisAbleBackButton = "<script language=\"javascript\">\n";
        strDisAbleBackButton += "window.history.forward(1);\n";
        strDisAbleBackButton += "\n</script>";
        ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "clientScript", strDisAbleBackButton);
    }
    protected void Page_Init(object Sender, EventArgs e)
    {
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
        Response.Cache.SetNoStore();
    }

上記のコードがうまくいくことを願っています。

于 2013-08-27T12:01:42.823 に答える
0

私が見たところ、セッション変数によってログオンした人を処理しているようです。だとすれば、マスターページやベースページで特定のセッション変数の存在をチェックして、その人がログオンしていることを確認できませんでしたか? ログオンしている場合は通常どおり続行します。ログオンしていない場合は、ログオン ページ (またはデフォルト) にリダイレクトしてログオンさせることができますか?

于 2013-08-26T15:36:46.943 に答える
-1

この質問は、スタック オーバーフローで何度か尋ねられました。簡単な検索で解決策が得られます。ログアウト後、戻るボタンを無効にする必要があります。そのためには、使用する必要があります

Page.Response.Cache.SetCacheability(HttpCacheability.NoCache)

キャッシュ自体を削除すると、後方への移動が停止します。

于 2013-08-26T11:36:29.590 に答える