2012-01-19 1 views
1

В настоящее время я использую этот код в энергетической оболочке:

$TrustAll=$TAAssembly.CreateInstance("Local.ToolkitExtensions.Net.CertificatePolicy.TrustAll") 
    [System.Net.ServicePointManager]::CertificatePolicy=$TrustAll 

Как я могу сделать это в C#?

ответ

4

Вот образец, который будет доверять каждому сертификату.

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

public class Program : ICertificatePolicy { 

    public bool CheckValidationResult (ServicePoint sp, 
     X509Certificate certificate, WebRequest request, int error) 
    { 
     return true; 
    } 

    public static void Main (string[] args) 
    { 
     ServicePointManager.CertificatePolicy = new Program(); 
     WebRequest wr = WebRequest.Create (args [0]); 
     Stream stream = wr.GetResponse().GetResponseStream(); 
     Console.WriteLine (new StreamReader (stream).ReadToEnd()); 
    } 
} 

Если вы хотите узнать больше по этой теме (например, альтернатив) я предлагаю вам прочитать вики Моно в article на эту тему.

0

Может быть, это может помочь:

[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true} 
+0

Похоже, он хочет C# версии, но это помогает мне! Это превращает 29-строчную функцию Ignore-SslErrors в [этот скрипт] (http://poshcode.org/2318) в 1. Sweet :-) –

+0

Yup, вы правы, спасибо за головы :) –