Aplicaciones de Windows
Contraer la tabla de contenido
Expandir la tabla de contenido

Envío de una solicitud de certificado e instalación de la respuesta para el certificado (aplicaciones de la Tienda Windows con JavaScript y HTML)

El siguiente ejemplo muestra cómo enviar una solicitud de certificado a una autoridad de certificación que ejecute servicios de certificados de Microsoft y cómo instalar el certificado emitido.

Nota  El valor myRequest es una cadena creada por el ejemplo analizado en el tema Creación de una solicitud de certificado.



function submitCertificateRequest( myRequest ) {

    var myMessage = "Submit certificate request to server ......";

    // Use the XMLHttpRequest object to communicate with a helper service which bridges communication with Certificate Services.
    var xmlHttpRequest = new XMLHttpRequest(); 

    // State change event handler.
    xmlHttpRequest.onreadystatechange = function() {
        var xmlResult;
        var certificate;
        var errorObj;
        var xmlElements;

        // All of the data has been received.
        if(xmlHttpRequest.readyState == 4) { 
            xmlResult = xmlHttpRequest.responseXML;

            // Parse the xml message from the service to retrieve the certificate.
            try {
                xmlElements = xmlResult.getElementsByTagName("SubmitRequestResult");
                if (1 != xmlElements.length) {
                    errorObj = new Error(0, "Server retunred more than 1 results");
                    throw errorObj;
                }
                else if (1 != xmlElements[0].childNodes.length) {
                    errorObj = new Error(0, "SubmitRequestResult element has more than 1 child nodes");
                    throw errorObj;
                }
                else if (3 != xmlElements[0].childNodes[0].nodeType) { //text node
                    errorObj = new Error(0, "SubmitRequestResult element's child node type " + xmlElements[0].childNodes[0].nodeType.toString() + " != 3");
                    throw errorObj;
                }
                else {
                    certificate = xmlElements[0].childNodes[0].nodeValue;
                }

                myMessage = myMessage + "\n\nReceived certificate from server, encoded certificate string =\n" + certificate;
                sdkSample.displayStatus(myMessage);
            }
            catch (ex1) {
                myMessage = myMessage + "\n\nCommunication with server failed. Error description = " + ex1.description;

                // use a custom function (not shown) to display the error.
                sdkSample.displayError(myMessage);
                return;
            }

            // Call the installCertificate method to install the certificate in the app container.
            try {
                Windows.Security.Cryptography.Certificates.CertificateEnrollmentManager.installCertificate(certificate);
                myMessage = myMessage + "\n\nCertificate installation succeeded. The certificate is in the app container certificate store";
                sdkSample.displayStatus(myMessage);
            }
            catch (ex2) {
                myMessage = myMessage + "\n\nCertificate installation failed.";
                myMessage = myMessage + convertErrortoString(ex2);
                sdkSample.displayError(myMessage);
            }
        }
    }

    var body = '<SubmitRequest xmlns="http://somename.org/"><strRequest>' + myRequest + '</strRequest></SubmitRequest>';
    var url = "http://servername/CrossMachineEnrollmentService/SubmitRequest";

    myRequest = "";

    // Send the request.
    xmlHttpRequest.open("POST", url, true);
    xmlHttpRequest.setRequestHeader("Content-type", "text/xml");
    xmlHttpRequest.send(body);

    // Use a custom function (not shown) to display progress.
    sdkSample.displayStatus(myMessage);
}

Temas relacionados

Creación de una solicitud de certificado
Trabajo con certificados

 

 

Mostrar:
© 2018 Microsoft