我有一个使用 NTLM 凭据调用的 ASPX 页面(在服务器 A 上)。该页面的部分工作是调用 HTML 页面(在服务器 B 上)并将其代理回客户端。(防火墙允许访问 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();
}