Baca dalam bahasa Inggris

Bagikan melalui


ICertificatePolicy Antarmuka

Definisi

Memvalidasi sertifikat server.

C#
public interface ICertificatePolicy

Contoh

Contoh berikut membuat kebijakan sertifikat yang kembali false untuk masalah sertifikat apa pun dan mencetak pesan yang menunjukkan masalah pada konsol. Enum CertificateProblem mendefinisikan konstanta SSPI untuk masalah sertifikat, dan metode GetProblemMessage privat membuat pesan yang dapat dicetak tentang masalah tersebut.

C#
public  enum    CertificateProblem  : long
{
        CertEXPIRED                   = 0x800B0101,
        CertVALIDITYPERIODNESTING     = 0x800B0102,
        CertROLE                      = 0x800B0103,
        CertPATHLENCONST              = 0x800B0104,
        CertCRITICAL                  = 0x800B0105,
        CertPURPOSE                   = 0x800B0106,
        CertISSUERCHAINING            = 0x800B0107,
        CertMALFORMED                 = 0x800B0108,
        CertUNTRUSTEDROOT             = 0x800B0109,
        CertCHAINING                  = 0x800B010A,
        CertREVOKED                   = 0x800B010C,
        CertUNTRUSTEDTESTROOT         = 0x800B010D,
        CertREVOCATION_FAILURE        = 0x800B010E,
        CertCN_NO_MATCH               = 0x800B010F,
        CertWRONG_USAGE               = 0x800B0110,
        CertUNTRUSTEDCA               = 0x800B0112
}

public class MyCertificateValidation : ICertificatePolicy
{
    // Default policy for certificate validation.
    public static bool DefaultValidate = false;

    public bool CheckValidationResult(ServicePoint sp, X509Certificate cert,
       WebRequest request, int problem)
    {
        bool ValidationResult=false;
        Console.WriteLine("Certificate Problem with accessing " +
           request.RequestUri);
        Console.Write("Problem code 0x{0:X8},",(int)problem);
        Console.WriteLine(GetProblemMessage((CertificateProblem)problem));

        ValidationResult = DefaultValidate;
        return ValidationResult;
    }

    private String GetProblemMessage(CertificateProblem Problem)
    {
        String ProblemMessage = "";
        CertificateProblem problemList = new CertificateProblem();
        String ProblemCodeName = Enum.GetName(problemList.GetType(),Problem);
        if(ProblemCodeName != null)
           ProblemMessage = ProblemMessage + "-Certificateproblem:" +
              ProblemCodeName;
        else
           ProblemMessage = "Unknown Certificate Problem";
        return ProblemMessage;
     }
}

Keterangan

Antarmuka ICertificatePolicy digunakan untuk menyediakan validasi sertifikat keamanan kustom untuk aplikasi. Kebijakan default adalah mengizinkan sertifikat yang valid, serta sertifikat valid yang telah kedaluwarsa. Untuk mengubah kebijakan ini, terapkan ICertificatePolicy antarmuka dengan kebijakan yang berbeda, lalu tetapkan kebijakan tersebut ke ServicePointManager.CertificatePolicy.

ICertificatePolicy menggunakan Antarmuka Penyedia Dukungan Keamanan (SSPI). Untuk informasi selengkapnya, lihat dokumentasi SSPI di MSDN.

Metode

Berlaku untuk

Produk Versi
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1