この順序は明示的に見えますが、.NET 10 ではプロキシ資格情報がない状態で終わります:

proxy.Credentials = new NetworkCredential(proxyUser, proxyPassword);
proxy.UseDefaultCredentials = false;

.NET 10 の WebProxy 実装では、UseDefaultCredentials を false に設定すると Credentials に null が代入されます。true に設定すると CredentialCache.DefaultCredentials が選択されます。二つのプロパティは同じアカウント選択を制御します。

サービス固有のアカウントでは、後からリセットせずに目的の資格情報を代入します:

var proxy = new WebProxy("http://proxy.example.net:8080")
{
    Credentials = new NetworkCredential(proxyUser, proxyPassword)
};

既存のセットアップ コードで既定の資格情報を明示的に無効にする必要がある場合は、NetworkCredential を代入する前に行ってください。明示的な資格情報が正しく存在していても getter が false になることがあり、false はアカウントが構成されていないことを必ずしも意味しません。

このオブジェクトを、要求を実行するハンドラーに結び付けます。統合 Windows 認証の場合は、代わりにプロセスの該当する ID を使って既定の資格情報を意図的に選択します。

オブジェクト初期化子の順序とヘルパー メソッドを確認し、目的のアカウントを置き換える後続の代入がないか調べます。この診断は使用中の WebProxy 実装に結び付けてください。HTTP ハンドラーの同名プロパティは別の認証スコープを制御することがあります。

関連記事