none
Error al agregar certificado X509Certificate2 RRS feed

  • Pregunta

  • hola

    Desarrollo una aplicacion de escritorio y estoy tratando de agregar un certificado a mi solicitud y me devuelve error :

    X509Certificate2 no contiene una definicion de Add ni se encuentra ningun metodo o extenxion Add que tome un primer argumento  X509Certificate2  falta una directiva using o una referencia de ensamblado

    el ejemplo es tomado de aqui : http://blog.sacaluta.com/2012/02/aspnet-web-api-httpclient-and-client.html

    mi codigo, resalto la linea del error en negritas

    public async Task PostParametrizadoAsync() { WebRequestHandler handler = new WebRequestHandler(); X509Certificate2 certificate = ElegirCertificado(); handler.ClientCertificates.Add(certificate); HttpClient client = new HttpClient(handler); client.BaseAddress = new Uri("https://api.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/"); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "/path"); request.Version = HttpVersion.Version11; var byteArray = new UTF8Encoding().GetBytes("<api-stag>:<all>"); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray)); var formData = new List<KeyValuePair<string, string>>(); formData.Add(new KeyValuePair<string, string>("grant_type", "password")); formData.Add(new KeyValuePair<string, string>("username", "<2354fdsdfsdf@stag.comprobanteselectronicos.go.cr>")); formData.Add(new KeyValuePair<string, string>("password", "<sdfs3525>")); formData.Add(new KeyValuePair<string, string>("scope", "all")); request.Content = new FormUrlEncodedContent(formData); var response = await client.SendAsync(request); richTextBox1.Text = response.ToString(); }

      public X509Certificate2 ElegirCertificado()
            {
                X509Store store = new X509Store(StoreLocation.CurrentUser);
                store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
                X509Certificate2Collection certificates = store.Certificates;
                X509Certificate2Collection foundCertificates = certificates.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
                X509Certificate2 cert = foundCertificates.OfType<X509Certificate2>().Where(x => x.Subject == "CN=NEOTECNOLOGIAS SOCIEDAD ANONIMA, OU=CPJ, O=PERSONA JURIDICA, C=CR, G=NEOTECNOLOGIAS SOCIEDAD ANONIMA, SN=\"\", SERIALNUMBER=CPJ-3-101-408861").First();
                return cert;
            }



    EFRAIN MEJIAS C VALENCIA - VENEZUELA



    jueves, 30 de noviembre de 2017 20:46

Respuestas

  • Hola Efrain Mejias Castillo

    Con base a tu consulta, te falta colocar el using Add  y  abajo de richTextBox1.Text = response.ToString();
    te falta colocar return Add;     

    Quedamos al pendiente de cualquier actualización de tu parte.

    Saludos Cordiales.

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     _____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    jueves, 30 de noviembre de 2017 23:37
    Moderador

Todas las respuestas

  • Hola Efrain Mejias Castillo

    Con base a tu consulta, te falta colocar el using Add  y  abajo de richTextBox1.Text = response.ToString();
    te falta colocar return Add;     

    Quedamos al pendiente de cualquier actualización de tu parte.

    Saludos Cordiales.

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     _____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    jueves, 30 de noviembre de 2017 23:37
    Moderador
  • Hola Pablo Rubio

    using Add; ?? 

    el Name space  Add no existe

              WebRequestHandler handler = new WebRequestHandler();
                X509Certificate2 certificate = ElegirCertificado();
                handler.ClientCertificates.Add(certificate);


    EFRAIN MEJIAS C VALENCIA - VENEZUELA

    viernes, 1 de diciembre de 2017 11:50