0

カスタムログアウトページがあります。ユーザーがログアウトをクリックすると、このページが表示されます (ログアウト ステータスがデータベースに保存されます)。ログインメカニズムはありません。ユーザーが新しいウィンドウで試行すると、ページの表示が許可され、ログアウト ステータスがログイン済みとして変更されます。

ログアウトすると、ユーザーが (ログアウト ページから) [戻る] ボタンをクリックしたときに、ユーザーが前のページを表示できないようにする必要があります。

同様に、ユーザーがページにアクセスすると、時間が保存されます。彼が 20 分間アイドル状態で操作を試みると、タイムアウトしたセッションにリダイレクトされます。戻るボタンのクリックで前のページを表示できないようにする必要があります。

現在、各ページでデータベースのステータスを確認し、ステータスがログアウトされている場合はログアウトしたページに再度リダイレクトしています。ただし、ページが最初に読み込まれ、次に JavaScript で検証されてからリダイレクトされます。これを処理するより良い方法はありますか?

注: Clear browser historyのコメントに基づいて、新しい質問として投稿しています。

        $.ajax(
        {
            type: "POST",
            url: "LogOut.aspx/GetActiveIndicatorStatus",
            data: '{"empID": "' + empID + '"}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: navigateBasedOnStatus

        }
        );


//Helper Function
function navigateBasedOnStatus(result) {


    if (result.hasOwnProperty("d")) {
        result = result.d
    }

    //alert($.trim(result));

    if ($.trim(result) == "LoggedOUT") {

        window.location.href("LogOut.aspx");
    }
    else 
    {
        contentHolderDiv.css("display", "block");
    }


}

参照:

  1. ブラウザの履歴を消去
  2. <a> に href を動的に追加する
4

1 に答える 1

2

シナリオ 1: Ajax を使用しない:

あなたがそのページにいる場合、ユーザーは再び表示されない可能性があります。

window.location.replace("LogOut.aspx/GetActiveIndicatorStatus?empID="+empID)

現在のページを、返されたものに置き換えます。

シナリオ 2: 結果の置換:

if ($.trim(result) == "LoggedOUT") {

    window.location.replace("LogOut.aspx");
}
else 
{
    contentHolderDiv.css("display", "block");
}
于 2012-11-08T09:52:23.657 に答える