1

更新パネルを使用する ASP.NET Web アプリケーションがあります。Web アプリケーションは、SiteMinder SSO 環境に統合されています。

この問題は、ユーザーを再認証するときが来たと Siteminder が判断したときに発生します。ユーザーが非同期ポストバックを引き起こすアクションを実行すると、Siteminder はこの要求をキャッチし、ログイン ページにリダイレクト応答を返します。

私の ASP.NET ページはこれを予期せず、PageRequestManagerParserErrorException をスローします。

私の推測では、このリダイレクト応答をクライアント コードで (PageRequestManager イベントを使用して) キャッチし、リダイレクトを正しく処理する必要があると思います。

しかし、どのように?

4

1 に答える 1

1

私も同じ問題を抱えてる。ここで1つの解決策を見つけました:http://forums.asp.net/t/1470176.aspx/1

各ページに次のJavaScriptを配置しました。

function pageLoad() {
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}

function EndRequestHandler(sender, args) {
    if (args.get_error() != undefined) {
        if (args.get_response().get_responseData().indexOf("<HTML><HEAD><TITLE>") == 0) {
            args.set_errorHandled(true);
            __doPostBack("", "");
        }
        else {
            // not my error so let the default behavior happen
        }
    }
}

ページが完全にビークするのを防ぎますが、クライアントで SSO がタイムアウトすると、非同期ポストバックではなくページ全体の更新を行います。

于 2012-01-10T10:29:52.663 に答える