2015-12-29 16 views
7

Jak RestSharp dodać certyfikat klienta w żądaniu Https? Mój kod to nie działa.Jak RestSharp dodać certyfikat klienta w żądaniu 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

Hi! Jakiego rodzaju wyjątku dostałeś? – Alina

Odpowiedz

13

Najpierw należy zaimportować certyfikat, a następnie dołączyć do żądania

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

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

Rzeczywiście tak się stało, ale kiedy wysyłam żądanie, certyfikat nie jest na nim. Pomimo sprawdzenia, że ​​kolekcja certyfikatów klientów jest wypełniona certyfikatem my -self-signed- – Chazt3n

+1

@ Chazt3n Spójrz na moją zaktualizowaną odpowiedź – tungula

+0

OK Zdecydowanie to zrobiłem, teraz wysyłam certyfikat przez przewód. Dziękuję za edycję. Czy znasz minimalne wymagania dotyczące akceptowania certyfikatu klienta w interfejsie WebAPI? – Chazt3n

Powiązane problemy