最近、サーバーがリダイレクトを返すときに、NetworkCredentialとHttpWebRequest.Credentialsに関してquestionが尋ねられました。自分のシナリオでNetworkCredentialインスタンスのCredentialCacheを構築することができると判断しました。今私はすべてのドメイン名がハードコードされたCredentialCacheを構築する一時的な方法を持っています。それはうまくいきました。リダイレクトを知っているときにHttpWebRequest.CredentialsのCredentialCacheを構築する
CredentialCache cache = new CredentialCache();
cache.Add(new Uri("http://example.com"), "Negotiate", loginCredentials);
cache.Add(new Uri("http://redirected.example.com"), "Negotiate", loginCredentials);
request.Credentials = cache;
これをもっと柔軟にする必要があります。リダイレクトのアイデア全体は、サーバー上の負荷分散のためのものです。クライアントは、HttpWebRequest.GetResponse()の呼び出しまでリダイレクト先を正確に知ることはできません。それぞれのリダイレクトされたサーバーに遭遇したときにそれらを含めるためにCredentialCacheを構築するための好ましい方法は何ですか?また、これを難しくする背後にある合理的なものは何ですか? 1つのNetworkCredentialsインスタンスが各リダイレクトに対してHttpWebRequest.Credentialsを満たしていないのはなぜですか?リダイレクトを介して資格情報を再利用するためのセキュリティ上の脆弱性が導入されていますか?
ありがとうございました。
私は可能性がしたいです。私たちは、プログラムがローカルアカウントで実行できるようにする必要があります。そこで、ユーザーが有効なケルベロスの資格情報を入力するためのログインダイアログウィンドウを作成しました。 – Nate