TIdHTTP は OnProxyAuthorization を公開しており、プロキシ認証メカニズムがアプリケーションにアカウントの提供を求める時点で呼び出されます。コールバックは TIdAuthentication オブジェクトと Handled の結果を受け取ります:

procedure TForm1.IdHTTP1ProxyAuthorization(Sender: TObject;
  Authentication: TIdAuthentication; var Handled: Boolean);
begin
  Authentication.Username := 'PROXY_USER';
  Authentication.Password := 'PROXY_PASSWORD';
  Handled := True;
end;

型には IdAuthentication ユニットを使い、このメソッドを HTTP コンポーネントの OnProxyAuthorization イベントに割り当てます。プレースホルダーの値は、アプリケーションの資格情報ロジックが提供するアカウントに置き換えます。

Handled=true を返すと、認証メカニズムはその値で処理を続行できます。ユーザーがキャンセルした場合や、アプリケーションが資格情報の提供を拒否した場合は false を返します。

プロキシの接続先は引き続き コンポーネントの ProxyParams 構成 に属します。コールバックは選択された方式のやり取りに参加するだけで、Basic や NTLM のヘッダーを自前で計算する必要はありません。

関連記事