Digest Authorization 是一种协议规定的Web服务器用来同网页浏览器进行认证信息协商的方法。它在密码发出前,先对其应用哈希函数,这相对于HTTP基本认证发送明文而言,更安全。从技术上讲,摘要认证是使用随机数来阻止进行密码分析的MD5加密哈希函数应用。它使用HTTP协议。(来自于百科)
下面进入正题:
上代码
string username = "用户名";
string password = "密码";
string usernamePassword = username + ":" + password;
CredentialCache mycache = new CredentialCache();
mycache.Add(new Uri("站点网址"), "Digest", new NetworkCredential(username, password));
Console.WriteLine("开始");
HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(new Uri("站点网址"));
Request.Credentials = mycache;
Request.Headers.Add("Authorization", "Digest" + Convert.ToBase64String(Encoding.Default.GetBytes(usernamePassword)));
Request.Method = "GET";
Request.Timeout = 1000;
Request.ContentType = "image/jpeg";
HttpWebResponse response;
try
{
response = (HttpWebResponse)Request.GetResponse();
}
catch (WebException ex)
{
response = (HttpWebResponse)ex.Response;
}
Stream stream = response.GetResponseStream();
System.Drawing.Image downimg = System.Drawing.Image.FromStream(stream);
downimg.Save(@"D:\work\imgDownLoad\imgDownLoad\2.jpg");
stream.Close();
response.Close();
主要是海康威视的照片用到了这个验证,需要用这个验证下载图片,就顺手记一下,防止忘记.