Csharp/C Sharp/Security/X509Certificates

Материал из .Net Framework эксперт
Версия от 11:38, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

ClientCertificates

 
using System;
using System.Net;
using System.Security.Cryptography.X509Certificates;
class MainClass {
    public static void Main() {
        WebRequest requestA = WebRequest.Create("http://www.yoursite.ru");
        requestA.Credentials = new NetworkCredential("userName", "password");
        requestA.PreAuthenticate = true;
        WebRequest requestB = WebRequest.Create("http://www.yoursite.ru");
        requestB.Credentials = CredentialCache.DefaultCredentials;
        requestB.PreAuthenticate = true;
        HttpWebRequest requestC = (HttpWebRequest)WebRequest.Create("http://www.yoursite.ru");
        X509Certificate cert1 = X509Certificate.CreateFromCertFile("TestCertificate.cer");
        requestC.ClientCertificates.Add(cert1);
        HttpWebRequest requestD = (HttpWebRequest)WebRequest.Create("http://www.yoursite.ru");
        X509Store store = new X509Store();
        X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindBySubjectName,"Joe", false);
        if (certs.Count == 1) {
            requestD.ClientCertificates.Add(certs[0]);
        } else {
            certs = X509Certificate2UI.SelectFromCollection(
                store.Certificates,
                "Select Certificate",
                "Select the certificate to use for authentication.",
                X509SelectionFlag.SingleSelection);
            if (certs.Count != 0) {
                requestD.ClientCertificates.Add(certs[0]);
            }
        }
    }
}