Foros del Web » Programación para mayores de 30 ;) » .NET »

Web Api + SSL + Certificado Cliente > Enviar certificado cliente desde Winforms

Estas en el tema de Web Api + SSL + Certificado Cliente > Enviar certificado cliente desde Winforms en el foro de .NET en Foros del Web. Buenas Foreros.. Tengo el IIS configurado con SSL, y también configurado para aceptar Certificados Cliente. Y funciona. Quiero realizar una petición Web Api desde un ...
  #1 (permalink)  
Antiguo 09/03/2014, 14:54
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Web Api + SSL + Certificado Cliente > Enviar certificado cliente desde Winforms

Buenas Foreros..

Tengo el IIS configurado con SSL, y también configurado para aceptar Certificados Cliente. Y funciona.

Quiero realizar una petición Web Api desde un aplicativo Windows (Cosa que ya sé hacer) enviado un Certificado. Ejecuto la aplicación, pulso el botón de enviar la solicitud al servidor, antes de enviarla selecciono el certificado que deseo utilizar, y envío la petición.

Sin embargo, en el lado del servidor el GetClientCertificate()... ME LLEGA A NULL.

Alguien sabe que puedo estar haciendo mal ??

Les dejo mi código:

Aplicación Windows
Código:
                //Creo el manejador de la petición, en la que adjunto un certificado cliente.
                var certHandler = new WebRequestHandler();
                certHandler.ClientCertificateOptions = ClientCertificateOption.Manual;
                certHandler.UseDefaultCredentials = false;
                certHandler.ClientCertificates.Add(objCertificate);                

                //Creo el objeto de la petición.
                var client = new HttpClient(certHandler);
                client.BaseAddress = new Uri("https://pchevia/WebTicketoCert/");


                //Indico en la cabecera que formato deseo recibir la petición.
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));                


                //Realizo la petición
                HttpResponseMessage response = client.GetAsync("api/Parking/StopParking/34543543").Result;
                
                //Recupero la respuesta (La cual siempre está siendo Rechazada, claro)
                if (response.IsSuccessStatusCode)
                {

                    var result = response.Content.ReadAsAsync(typeof(bool)).Result;

                }
                else
                {
                    MessageBox.Show("Error Code" +
                    response.StatusCode + " : Message - " + response.ReasonPhrase);
                }

En el lado del servidor cree un Atributo de validación que es el que tengo establecido en la clase del controlador, para siempre validar si me ha llegado el certificado.
Código:
    public class BasicAuthorizeAttribute : AuthorizationFilterAttribute
    {
        public override void OnAuthorization(HttpActionContext actionContext)
        {
              //Aqui ya debería de poder recuperar el certificado cliente
              var certificate = actionContext.Request.GetClientCertificate()

En fin... si alguien sabe que puede estar pasando, agradecería me diera un poco de soporte, por que la verdad... creo que es simple el proceso en sí, y no sé que puedo estar haciendo mal...

Gracias ya por vuestro tiempo y molestia en leer el post.

Un saludo.
__________________
Charlie.
  #2 (permalink)  
Antiguo 23/03/2014, 12:25
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Respuesta: Web Api + SSL + Certificado Cliente > Enviar certificado cliente desde Win

Nadie puede iluminarme un poco ?? xD
__________________
Charlie.

Etiquetas: api, cliente, ssl
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:16.