0

AIR でダイジェスト認証を実行しようとしていますが、ユーザー名とパスワードを要求する煩わしい認証ウィンドウ (デフォルトのシステム ウィンドウ) 以外は機能します。

キャンセルをクリックすると、次の認証リクエストまで、すべてが正常に機能します。ただし、常にキャンセルをクリックするだけで機能します。

[OK] をクリックすると、ウィンドウが再びポップアップ表示されます (一種のロジックですね)。

リクエストは次のようになります。

public function startT0Registration():void
{
    var req : URLRequest = new URLRequest(url);
    var loader : URLLoader = new URLLoader();
    req.method = URLRequestMethod.PUT;

    loader.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS, handleRegistration);
    try {
        loader.load(req);
    } catch (error:Error) {
        trace("startRegistration: Unable to load requested document.");
    }
}

私が抱えている問題は、次の方法でウィンドウを無効にしようとしたときです。

req.authenticate = false;

次のWWW-Athenticateヘッダー情報を使用して、サーバーから必要な HTTP 401エラーを取得していません。

Digest realm="TestRealm", qop="auth", nonce="32L HEX HASH", opaque="32L HEX HASH"

401 エラーが発生する代わりに、必要な WWW-Athenticate ヘッダー情報がないHTTP 407エラーが発生します。

ダイジェスト認証を行う必要があるため、サーバーに応答するにはそのヘッダーが必要です。

そのための解決策があるはずです。

4

1 に答える 1

0

アプリケーションとバックエンドの間のプロキシ サーバーに問題があるようです。--> プロキシのない接続req.authenticate = false;によって問題が解決しました。

于 2012-01-09T18:46:26.350 に答える