7
<script type="text/javascript">
    {
        function DisableBackButton() {
            window.history.forward()
        }

        DisableBackButton();

        window.onload = DisableBackButton;
        window.onpageshow = function (evt) { if (evt.persisted) DisableBackButton() }
        window.onunload = function () { void (0) }
    }
</script>

マスターページで次のコードを使用して、戻るボタンを無効にしています。

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();

Response.ExpiresAbsolute = DateTime.Now.AddDays(-1d);
Response.Expires = -1500;
Response.CacheControl = "no-cache";
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);

そのログアウトボタンにマスターページがあり、ユーザーがそのユーザーをクリックすると、ログアウトページにリダイレクトされます。これは正常に機能しており、戻るボタンをクリックすると、閲覧した最後のページに移動します。私もJavaScriptで試しました。

5 分後にセッションのタイムアウトを作成しています。セッションの有効期限が切れると、ユーザーはセッションの有効期限ページにリダイレクトされ、戻るボタンを押すと最後に閲覧したページに移動します。

4

7 に答える 7

9

ここで、この JavaScript 機能はすべてのブラウザーで機能し、ユーザーがブラウザーの戻るボタンを押して前のページに戻るのを防ぎます。JavaScript コードの下にチェックを入れます。

<script type="text/javascript" language="javascript">
     function DisableBackButton() {
       window.history.forward()
      }
     DisableBackButton();
     window.onload = DisableBackButton;
     window.onpageshow = function(evt) { if (evt.persisted) DisableBackButton() }
     window.onunload = function() { void (0) }
 </script>

ユーザーがブラウザーの戻るボタンを使用して別のページに戻るのを防ぐ必要がある場合は、ページのヘッダー セクションに上記のスクリプトを配置する必要があります。

ここでは、Defaul1.aspx と Default2.aspx の 2 つのページがある例を使用して、要件を説明します。次に、Default1.aspx ページから Defaul2.aspx ページにリダイレクトします。Defaul1.aspx ページから Default2.aspx に移動した後、Defaul2.aspx から Default1.aspx ページに戻ろうとすると、ユーザーが前のページ (Defaul1.aspx) に戻らないようにする必要があります。この機能を実現するには、必要なページのヘッダー セクションで JavaScript 関数の上に配置します。

JavaScript 機能をページに追加すると、コードは次のようになります

<html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
    <title>Disable Browser Back buttons</title>
    <script type="text/javascript" language="javascript">

      function DisableBackButton() {
       window.history.forward()
      }
      DisableBackButton();
       window.onload = DisableBackButton;
       window.onpageshow = function(evt) { if (evt.persisted) DisableBackButton() }
        window.onunload = function() { void (0) }
     </script>
   </head>
   <body >
    <form id="form1" runat="server">
     <div>
        First Page
    </div> 
      <div>
         <asp:Button id="btnFirst" runat="server" Text="Go to First Page"  PostBackUrl="~/Default.aspx"  />
        <asp:Button ID="btnSecond" runat="server" Text="Go to Second Page"  PostBackUrl="~/Default2.aspx" />
        <asp:Button ID="btnThree" runat="server" Text="Go to Third Page" PostBackUrl="~/Default3.aspx" />
       </div>
    </form>
    </body>
   </html>

これは、コード ビハインドでブラウザのキャッシュを無効にすることでも実現できます。Pag​​e_Init イベントまたは Page_Load イベントに次のコード行を記述し、System.Web を使用して名前空間を追加することを忘れないでください。HttpCacheability がその名前空間に関連しているためです。

 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-02T05:36:03.990 に答える
3
<script type="text/javascript" language="javascript">
    window.onload = function () {
        noBack();
    }
    function noBack() {
        window.history.forward();
    }
</script>
<body  onpageshow="if (event.persisted) noBack();">
</body>

こんにちは、このようにできます。

このコードをマスター ページに実装する

私はこれを実装しましたが、うまくいきました..

于 2013-08-02T05:36:19.500 に答える
1

「ログアウト」をクリックすると、Logout.aspx ページにリダイレクトされます。次の本文コンテンツを使用して、新しいページを Logout.aspx として追加します。

        Please wait. You are Logging out.
        <asp:ScriptManager ID="ScriptManager1" runat="server">  
        </asp:ScriptManager>  
        <asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick">  
        </asp:Timer>

以下のようにjavascriptを追加します

function noBack() {
            window.history.forward()
        }
        noBack();
        window.onload = noBack;
        window.onpageshow = function (evt) { if (evt.persisted) noBack(); }
        window.onunload = function () { void (0); }

Logout.aspx.cs

protected void Page_Load(object sender, EventArgs e)
    {
        Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetNoStore();  
    }

    protected void Timer1_Tick(object sender, EventArgs e)
    {
        Response.Redirect("Login.aspx")); 
    }

ソース: http://geekswithblogs.net/Frez/archive/2010/05/18/back-button-issue-after-logout-in-asp.net.aspx

于 2015-02-11T15:46:31.360 に答える
0

ブラウザの戻るボタンを無効にするには、マスター ページのヘッダー部分に次のコードを次のように記述します。

<script language="JavaScript" type="text/javascript">
window.history.forward();              
</script>
于 2016-06-09T10:37:39.437 に答える