protected void Page_Load(object sender, EventArgs e)
    {
        // Identificador de la aplicacion (dada de alta previamente en el sistema)
        //string appId = "0DC38D5E5D68"; // Preproduccion
        string appId = "B244E473466F";                                 // Local

        string transactionId = "98c60d94-99d9-400b-819a-0339cb2050b0"; // DNI de la persona

        string provider = "clavefirmatest";                            // Proveedor de firma en la nube

        X509Certificate cert;

        try
        {
            cert = HttpGenerateCertificate.recoverCertificate(
                appId,          // Identificador de la aplicacion (dada de alta previamente en el sistema)
                transactionId,  // Identificador de transaccion recuperado en la operacion generateCertificate()
                provider
                );
        }
        catch (Exception ex)
        {
            Cert1B64.Text = "Error durante la operacion: " + ex.Message;
            return;
        }
        X509Certificate2 cert2 = new X509Certificate2(cert);

        // Recorremos el listado de certificados
        Cert1B64.Text = System.Convert.ToBase64String(cert.GetRawCertData());

        Cert1SubjectCN.Text = cert2.GetNameInfo(X509NameType.SimpleName, false);
        Cert1IssuerCN.Text  = cert2.GetNameInfo(X509NameType.SimpleName, true);

        Cert1ExpirationDate.Text = cert2.GetExpirationDateString();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Identificador de la aplicacion (dada de alta previamente en el sistema)
        //string appId = "0DC38D5E5D68"; // Preproduccion
        string appId = "B244E473466F";                         // Local

        string subjectId = "00002";                            // DNI de la persona

        string conf = "redirectOkUrl=http://www.google.es\n" + // URL a la que llegara si el usuario se autentica correctamente
                      "redirectErrorUrl=http://www.ibm.com";   // URL a la que llegara si ocurre algun error o el usuario no se autentica correctamente
        string confB64 = Base64Encode(conf);

        string provider = "clavefirmatest";     // Proveedor de firma en la nube

        // Funcion del API de Clave Firma para cargar los datos a firmar
        GenerateCertificateResult generateResult;

        try
        {
            generateResult = HttpGenerateCertificate.generateCertificate(
                appId,          // Identificador de la aplicacion (dada de alta previamente en el sistema)
                subjectId,      // DNI de la persona
                confB64,        // Configuracion del servicio en base 64 (se incluyen las URL a las que redirigir en caso de exito y error)
                provider        // Proveedor de firma en la nube
                );

            // Mostramos los datos obtenidos
            TransactionId.Text  = generateResult.getTransactionId();
            RedirectionURL.Text = generateResult.getRedirectUrl();
        }
        catch (HttpCertificateAvailableException)
        {
            ErrorMsg.Text = "El usuario ya tiene certificados generados";
        }
        catch (HttpWeakRegistryException)
        {
            ErrorMsg.Text = "El usuario realizó un registro débil y no puede tener certificados de firma";
        }
        catch (HttpNoUserException)
        {
            ErrorMsg.Text = "El usuario seleccionado no existe";
        }
    }