在我的程序中,我试图访问一个受密码保护的网站(在浏览器中打开时,会出现一个像图片上这样的弹出窗口,要求用户登录(注意:这只是找到的一张图片在谷歌上,而不是我正在使用的实际网站))。
现在,我不需要完全打开这个站点(实际上它是子目录)或下载它或任何东西,我只是想验证登录信息。假设应用程序中有两个文本框,与浏览器中弹出的文本框类似,我想验证输入的用户名和密码是否正确。知道怎么做吗? 我的想法是尝试把它当作一个 FTP 文件,因为这是我能弄清楚如何在代码中设置登录名和密码的唯一方法,而且我预计如果凭据不正确,程序会丢弃异常或其他东西,但它只是通过这段代码而没有结果。
感谢您的帮助
请您参考如下方法:
您可以尝试对 url 执行 http 请求,并在请求中提供凭据。如果响应是状态代码 200 (OK) 则一切正常。如果响应是状态代码 401(未授权),则凭据不正确:
// create request
var request = (HttpWebRequest)WebRequest.Create("http://www.google.com");
request.Credentials = new NetworkCredential("Username", "Password");
try
{
// get response
var response = (HttpWebResponse)request.GetResponse();
var statusCode = response.StatusCode;
// verify response
if (statusCode == HttpStatusCode.OK)
{
// login was ok
}
}
catch (WebException ex)
{
if (((HttpWebResponse) ex.Response).StatusCode == HttpStatusCode.Unauthorized)
{
// unauthorized
}
}
