NTLM資格情報を使用して呼び出されるASPXページ(サーバーA上)があります。そのページの仕事の一部は、(サーバー B で) HTML ページを呼び出し、それをクライアントにプロキシすることです。(ファイアウォールは A へのアクセスを許可しますが、B へのアクセスは許可しません。通常、ユーザーは両方のサーバーへのアクセスを許可されます。) サーバー B も匿名アクセスに対して開かれていないため、資格情報を提供する必要があります。
一部の資格情報を (添付のコードに従って) ハードコードすると機能しますが、.aspx ページで受け取った資格情報をエコーするのが理想的です。これらの NetworkCredentials を取得して渡す方法はありますか?
protected void Page_Load(object sender, EventArgs e) {
Response.Clear();
WebClient proxyFile = new WebClient();
CredentialCache cc = new CredentialCache();
cc.Add(new Uri("http://serverB/"), "NTLM",
new NetworkCredential("userName", "password", "domain"));
proxyFile.Credentials = cc;
Stream proxyStream = proxyFile.OpenRead("http://serverB/Content/webPage.html");
int i;
do {
i = proxyStream.ReadByte();
if (i != -1) {
Response.OutputStream.WriteByte((byte)i);
}
} while (i != -1);
Response.End();
}