0

ASP.netアプリケーションで多くのAJAX要求を行っていますが、ユーザーがログアウトすると、応答テキストを使用している場所にログインフォームが表示されます。

この問題をどのように処理できますか?すべての応答を再概念化することはできません。ユーザーがログアウトした場合、応答が多すぎるため、特定の応答が返されます。

すべての応答に対してこれを処理する方法はありますか?すべての応答は、特定のフォルダー内のGenericHalndlers.ashxによって処理されます。

4

1 に答える 1

1

これは、comman関数を使用してサイト全体で達成でき、セッションを検証できます。これは、2ステップのプロセスを使用して達成できます。

ステップ1:

ajaxの完全な関数呼び出しでvalidateSessionを呼び出します。この場合、セッション/ログインページのコンテンツに基づいてログインページにリダイレクトされます。

complete: function(XHR, status){   //handle session out
            validateSession(XHR.responseText);
        },

ステップ2:

ログインページに配置されたテキストをチェックして、セッションとリダイレクトを処理します。私の例では、ログインページに:SESSION EXPIRED:文字列を配置しました。

   function validateSession(strAjaxOutput, strStatus, objXhr)
    {
    if(("undefined" != typeof strStatus) && ("undefined" != typeof objXhr))
    {
    strAjaxOutput = objXhr.responseText;
    }
    var reg = /:SESSION EXPIRED:/;
    if(reg.test(strAjaxOutput))
    {
    window.location = "http://www.myloginpage.com"; //redirect to login page
    return false;
    }
    else
    {
    return true;
    }
    } 
于 2013-03-25T18:45:24.030 に答える