HttpWebRequest使用SSL连接的时候,处理服务器证书不安全的方法

ServicePointManager.ServerCertificateValidationCallback 属性


RemoteCertificateValidationCallback 委托

ms-help://MS.MSDNQTR.v90.chs/fxref_system/html/b3a0c706-1033-a543-01ca-23d09fcc121a.htm

WebRequest and SSL (The underlying connection was closed. Could not establish trust relationship with remote server.)
http://weblogs.asp.net/wim/archive/2004/04/02/106281.aspx

WinForm 调 SSL VPN WebService
http://www.cnblogs.com/zhongzf/archive/2006/10/27/386902.html

 

using  System;
using  System.Collections.Generic;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Linq;
using  System.Text;
using  System.Windows.Forms;

using  System.IO;
using  System.Net;
using  System.Collections;
using  System.Threading;

using  System.Net.Security;
using  System.Security.Cryptography.X509Certificates;

namespace  GetCWData {
  
public   partial   class  Form1 : Form {

    CookieContainer cc;

    
public  Form1() {
      InitializeComponent();

      BeginGetData();
    }

    
private   void  BeginGetData() {
      
this .cc  =   new  CookieContainer();

      
this .txtUsername.Text  =  GetCWData.Properties.Settings.Default.Username;
      
this .txtPassword.Text  =  GetCWData.Properties.Settings.Default.Password;
      
string  url  =  GetCWData.Properties.Settings.Default.BaseURL  +  GetCWData.Properties.Settings.Default.LoginPage;

      
// ServicePointManager.CertificatePolicy = new AcceptAllCertificatePolicy();
      ServicePointManager.ServerCertificateValidationCallback  =   new  RemoteCertificateValidationCallback(ValidateServerCertificate);

      HttpWebRequest request 
=  (HttpWebRequest)WebRequest.Create(url);
      request.Method 
=   " POST " ;
      request.ContentType 
=   " application/x-www-form-urlencoded " ;
      request.ContentLength 
=   0 ;
      request.UserAgent 
=   " Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.1124) " ;
      request.CookieContainer 
=   this .cc;

      HttpWebResponse response 
=  (HttpWebResponse)request.GetResponse();

      Stream stream 
=  response.GetResponseStream();
      StreamReader reader 
=   new  StreamReader(stream, Encoding.UTF8);
      
string  result  =  reader.ReadToEnd();

      
this .txtHTML.Text  =  result;
    }

    
// internal class AcceptAllCertificatePolicy : ICertificatePolicy {
    
//   public AcceptAllCertificatePolicy() {
    
//   }

    
//   public bool CheckValidationResult(ServicePoint sPoint, X509Certificate cert, WebRequest wRequest, int certProb) {
    
//      //  Always accept
    
//     return true;
    
//   }
    
// }

    
public   static   bool  ValidateServerCertificate( object  sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) {
      
// if (sslPolicyErrors == SslPolicyErrors.None) {
      
//   return true;
      
// }

      
// Console.WriteLine("Certificate error: {0}", sslPolicyErrors);

      
/// / Do not allow this client to communicate with unauthenticated servers.
       // return false;

      
return   true ;
    }

  }
}

转载于:https://www.cnblogs.com/hawkjin/archive/2008/02/27/1083454.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值