2

asp.net Web サイトを開発していますが、asp.net の組み込みの認証コントロールを使用していません。サイトのユーザー用のテーブルを手動で作成しました。

私が欲しいのは次のとおりです

  • ログイン後、ユーザーはページにアクセスできます (これは既に行われています)。
  • ユーザーがサインアウトを押したとき (ユーザーは特定のページに移動します - 例 - default.aspx)
  • ユーザーがブラウザの「戻る」ボタンを押したときに、前のページに移動してはなりません(これはYahooページで行われます-同じことを実装したいです)
4

3 に答える 3

2

ユーザーが戻るボタンを押したときに前のページが表示されないようにするには、ブラウザにこのページをキャッシュしないように指示する必要があります。

Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
Response.Cache.SetValidUntilExpires(false);
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();

このコードをすべての認証済みページに配置して、クライアント ブラウザーにキャッシュされないようにすることができます。

于 2009-12-26T17:45:01.353 に答える
1

ページがキャッシュされないようにするには、ブラウザーがキャッシュの指示に適切に応答する必要がありますが、これがすべてのブラウザーで機能するという保証はありません! (適切に悪意のある人は、独自のブラウザを作成してキャッシュ情報を無視するか、プロキシを作成してそれを取り除くことができます...)

したがって、これを 100% 常に機能させることはできませんが、ユーザーが簡単にスクリーンショットを撮ったり、ページを印刷したり、コピーをディスクに保存したりできるという問題に常に直面することになります。とにかく彼らにページを送りました...

于 2009-12-26T17:56:10.287 に答える
1

あなたの質問に対する答えは次のとおりです。

  • ユーザーがサインアウトを押したとき。(ユーザーは特定のページに移動します - 例 - default.aspx ) LinkBut​​ton をサインアウト リンクとして追加し、クリック イベント ハンドラーで Response.Redirect("Default.aspx"); を記述できます。

  • ユーザーがブラウザの「戻る」ボタンを押したときに、前のページに移動してはいけません//ページのコードビハインドに次のコードを追加します

    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);
    

    }

csharpdotnetfreak.blogspot.com を参照してください。

于 2009-12-27T10:24:20.147 に答える