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エラーが発生します。
ダイジェスト認証を行う必要があるため、サーバーに応答するにはそのヘッダーが必要です。
そのための解決策があるはずです。