1

ローカル Web サーバー (IIS、Windows 8) を使用してアプリケーションをテストしています。サイトには基本認証が必要です。資格情報を明示的に渡す限り、すべて正常に動作します。

request.Credentials = new NetworkCredential("User", "Password", "Domain");
request.PreAuthenticate = true;

しかし、統合セキュリティを使用したいので、最初の行を次のように変更してみました。

request.Credentials = CredentialCache.DefaultNetworkCredentials;

(DefaultCredentialsも試しました)

Fiddler でネットワーク トラフィックを確認したところ、2 番目のケースでは HTTP 要求が承認ヘッダーなしで送信されていることがわかりました。したがって、失敗しても驚くことではありません。しかし、なぜ?

アップデート。デフォルトの資格情報の概念を誤解していると思います。DefaultNetworkCredentials を使用して基本認証ヘッダーを生成することはできません。ユーザーとパスワードのペアである必要があります。したがって、この動作は仕様です。

4

1 に答える 1

0

このトピックについてコメントしてくれた人々のおかげで、デフォルトの資格情報の概念を誤解していたことに気付きました。基本認証のみが有効になっている場合は使用できないため、これは正しい動作です。

于 2013-01-18T17:31:43.640 に答える