Csharp/C Sharp/Security/X509Certificates

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

ClientCertificates

<source lang="csharp"> 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]);
           }
       }
   }

}

</source>