【发布时间】:2012-06-22 12:57:19
【问题描述】:
我正在尝试访问同一域/同一 asp.net 应用程序上的网页,该网页受密码保护。用于触发此调用的网页和正在访问的网页的凭据相同。
这是代码,不知道为什么我总是以登录表单的html代码结束?
using (WebClient client = new WebClient())
{
client.QueryString.Add("ID", "1040"); //add parameters
//client.Credentials = CredentialCache.DefaultCredentials;
//I tried to add credentials like this
client.Credentials = new NetworkCredential("username", "password");
string htmlCode = client.DownloadString("http://domain.loc/testpage.aspx");
}
【问题讨论】:
-
你为什么不直接重定向到那个页面?在服务器进程中使用代码下载它意味着您没有使用相同的凭据。如果我理解正确,而不是浏览器(使用客户端凭据)访问页面,不同机器(服务器)上的不同进程正在下载它并将其呈现给客户端!
-
这些凭据是如何提供给网页的?它是否使用表单身份验证?
-
@shambulator 重定向到该页面是什么意思?我正在尝试获取该页面的 html 代码。
-
@DarinDimitrov 是的,它使用表单身份验证。
标签: c# asp.net webclient credentials defaultnetworkcredentials