Estoy tratando de hacer un servicio de jabón.
Para enviar la solicitud necesito usar el Certificado X509. Usé la clase X509Certificate2 para ese propósito.
El problema es que sus claves son la clase System.Security.Cryptography.RSACryptoServiceProvider que acepta solo el algoritmo de firma "http://www.w3.org/2000/09/xmldsig#rsa-sha1" . En nuestro caso, se necesita el algoritmo de firma sha256.
¿Tienes alguna idea de cómo puedo lidiar con eso?
El código se ve así:
SoapService.GetOrderStatusRequest request = new SoapService.GetOrderStatusRequest() { orderId = Int32.Parse(txtID.Text), requestHeader = new SoapService.RequestHeader() { institutionId = 123, requestId = "aeacbff8-ba6d-4a01-8e76-0b4384c24721", system = "Test" } }; var cert = new X509Certificate2(AppDomain.CurrentDomain.BaseDirectory + "//cert.p12", "Passs123"); client.ChannelFactory.Credentials.ClientCertificate.Certificate = cert; client.ClientCredentials.ClientCertificate.Certificate = cert; SoapService.GetOrderStatusResponse response = client.getOrderStatus(request); txtResult.Text = response.order.name;Editar1. Descubrí que esto no es un problema con la configuración de X509Certificate2, sino con la configuración vinculante... con la seguridad del mensaje para ser exactos.
Desafortunadamente todavía tengo algunos errores :/