2015-12-29 32 views
7

Come RestSharp aggiungere il certificato client nella richiesta Https? Il mio codice non funziona.Come RestSharp aggiungere il certificato client nella richiesta 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! Che tipo di eccezione hai ricevuto? – Alina

risposta

13

In un primo momento si dovrebbe importare il certificato e poi allegare alla richiesta

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

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

Quindi funzionava davvero, tuttavia quando invio la richiesta il certificato non è presente. Nonostante la verifica della raccolta dei certificati dei client sia stata compilata con il mio certificato self-signed – Chazt3n

+1

@ Chazt3n Guarda la mia risposta aggiornata – tungula

+0

OK. L'ho fatto sicuramente, ora sto inviando il certificato attraverso il filo. Grazie per la modifica. Ti capita di conoscere i requisiti minimi per l'accettazione di un certificato client in WebAPI? – Chazt3n