小妹请教WinFrom通过Https访问网站
操作系统Win7旗舰版,IIS7
我创建了一个自签名的证书,然后创建了一个网站。配置好了SSL环境。
导出了一个公钥的cer文件。
这个网站通过https访问,这个网站很简单,代码如下。
我想用一个WinFrom的程序来访问这个网站。我WinFrom里应该如何写啊!
WinFrom里我仿了很多例子,但是都不成功!代码贴出如下。请各位前辈指正。
应该如何改正。
Default.aspx
using System;using System.Collections.Generic;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace SSLWeb{ public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string user_name=Request.QueryString["user_name"]; string password = Request.QueryString["password"]; if (user_name == "admin" && password == "admin") { Response.Write("OK"); } else { Response.Write("Error"); } } }}
private void Form1_Load(object sender, EventArgs e) { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://192.168.0.62/Default.aspx"); ServicePointManager.CertificatePolicy = new MyPolicy1(); //创建证书文件 X509Certificate objx509 = new X509Certificate("D:\\zhengshu\\tom_test.cer"); //添加到请求里 request.ClientCertificates.Add(objx509); //User-AgentHTTP标头的值 request.UserAgent = "Client Cert Sample"; request.Method = "POST"; //我还想Post两个数据过去,同样不知道怎么处理。user_name和password //读返回的流 StreamReader reader = new StreamReader(request.GetResponse().GetResponseStream()); MessageBox.Show(reader.ReadToEnd()); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }public class MyPolicy1 : ICertificatePolicy { //这个方法应该是在client和server已经进行了初步验证之后才调用的。 //不能实现我的要求。 public bool CheckValidationResult(ServicePoint srvPoint, X509Certificate certificate, WebRequest request, int certificateProblem) { Console.WriteLine( "now CheckValidationResult....... "); //Return True to force the certificate to be accepted. return true; } // end CheckValidationResult } // class MyPolicy