2015-12-29 1 views
7

Как RestSharp добавить сертификат клиента в запрос Https? Мой код не работает.Как RestSharp добавить сертификат клиента в запрос Https? (C#)

public static IRestResponse<User> AsyncHttpRequestLogIn(string path, string method, object obj) 
    { 
     var client = new RestClient(Constants.BASE_URL + path); // https:.... 
     var request = method.Equals("POST") ? new RestRequest(Method.POST) : new RestRequest(Method.GET); 
     request.RequestFormat = RestSharp.DataFormat.Json; 

     // The path to the certificate. 
     string certificate = "cer/cert.cer";  

     client.ClientCertificates.Add(new X509Certificate(certificate)); 

     request.AddBody(
      obj 
     ); 


     IRestResponse<User> response = client.Execute<User>(request); 

     return response; 

    } 
+1

Привет! Какое исключение вы получили? – Alina

ответ

13

Сначала вы должны импортировать сертификат, а затем прикрепить к запросить

X509Certificate2 certificates = new X509Certificate2(); 
certificates.Import(...); 

client.ClientCertificates = new X509CertificateCollection(){certificate}); 
+0

Так что это действительно сработало, однако, когда я отправляю запрос, сертификат не на нем. Несмотря на то, что проверка коллекции сертификатов клиентов заполнена моим сертификатом-сам- – Chazt3n

+1

@ Chazt3n Посмотрите на мой обновленный ответ – tungula

+0

OK Я определенно сделал это, теперь я отправляю сертификат через провод. Спасибо за редактирование. Знаете ли вы, что вы знаете минимальные требования к принятию сертификата клиента в WebAPI? – Chazt3n