Buenas Javier, te cuento como lo he realizado yo:tengo una pagina de asp .net a la que le paso por parámetros el nombre del xml, esta pagina carga el applet y le dice que firme el xml y que lo envie a otra página, en la otra página simplemente guardo lo que me manda el cryptoapplet.... Cuando utilices el código piensa que tienes que retocar bastantes rutas por las tuyas, bueno te pongo el codigo de la primera pagina , fijate que es de .net pero que casi todo se hace en javascript para que funcione el cryptoapplet
<%@ Page Language="C#" MasterPageFile="~/facturacion/master/facturacion.Master" AutoEventWireup="True" CodeBehind="Default.aspx.cs" Inherits="facturae._Default" Title="Página sin título" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<script language="JavaScript">
function onInitOk(){
document.getElementById("btn1").disabled=false;
}
function onSignOk(){
//document.location= "firmas/signed_fac.xml";
}
// truco para sacar donde estan los archivos..
function getUrl(){
var strReturn = "";
var strHref = window.location.href;
//alert(strHref);
if ( strHref.indexOf("/") > -1 ){
var strQueryString =
strHref.substr(0,strHref.lastIndexOf("/")+1).toLowerCase();
strReturn=strQueryString;
//alert(strQueryString);
}
return unescape(strReturn);
}
function getQueryString(){
var strReturn = "";
var strHref = window.location.href;
//alert(strHref);
if ( strHref.indexOf("/") > -1 ){
var strQueryString =
strHref.substr(strHref.lastIndexOf("?")+1,strHref.length-1).toLowerCase();
strReturn=strQueryString;
//alert(strQueryString);
}
return unescape(strReturn);
}
// saca la variable que pasan por file=....
function getQueryStringFile(){
var strReturn = "";
var strHref = window.location.href;
//alert(strHref);
if ( strHref.indexOf("/") > -1 ){
var strQueryString =
strHref.substr(strHref.lastIndexOf("?file=")+6,strHref.indexOf("&")-strHref.lastIndexOf("?file=")-6).toLowerCase();
strReturn=strQueryString;
//alert(strQueryString);
}
return unescape(strReturn);
}
function sign(){
// utilizo una funcion para sacar la url, ya
// que el applet solo utiliza rutas absolutas
var queryString= getQueryString();
var urlInicial=getUrl();
var archivo = getQueryStringFile();
var fileToEncrypt=
"http://micasoft.es/efactur/facturacion/dbfacturas/" + archivo ; // obama
//var fileToEncrypt= "http://localhost:1565/facturacion/dbfacturas/"
+ archivo ; //local
var urlPhp= urlInicial + "save.aspx" + "?" + queryString;
// alert(fileToEncrypt);
// alert(urlPhp);
//alert(queryString);
cp= document.getElementById('CryptoApplet');
cp.setLanguage("ES");
cp.setSignatureOutputFormat("FACTURAE");
cp.setInputDataEncoding("PLAIN");
cp.signDataUrlToUrl(fileToEncrypt, urlPhp);
}
function onSignOk(res)
{
// activamos el boton de descarga ...
document.getElementById("btn1").disabled=true;
document.getElementById("btn2").disabled=false;
document.getElementById("btn3").disabled=false;
}
function seguir ()
{
//var queryString= getQueryString();
document.aspnetForm.action = "../factura/nuevafact.aspx";
document.aspnetForm.target="_self";
document.aspnetForm.__VIEWSTATE.name = 'NOVIEWSTATE';
document.aspnetForm.submit();
}
function download()
{
var urlInicial=getUrl();
var urlDescarga = "";
var archivo= getQueryStringFile();
urlDescarga = "../factura/xml.ashx?xml=" + archivo;
window.open(urlDescarga, '_self')
}
</script>
<div align="center">
<br /><br />
Debe esperar a que se cargue el manejador de certificados digitales.
<br />
Cuando este se cargue pulse sobre el botón Firmar.<br />
<br />
<applet id="CryptoApplet" code="es.uji.dsign.applet2.SignatureApplet"
width="100" height="100" codebase="app" archive="ujiApplet-2.0.5.jar,
ujiConfig-2.0.5.jar, ujiCrypto-2.0.5.jar, ujiUtils-2.0.5.jar,
libs/xalan-2.7.0.jar, libs/jakarta-log4j-1.2.6.jar,
libs/bcprov-jdk15-143.jar, jxades.jar" mayscript></applet>
<br/> <br/><br/> Pulsa el botón para firmar: <br/><br/> <button id="btn1" disabled="true" onClick="sign();">Firmar</button><button id="btn2" disabled="true" onClick="seguir();">Seguir facturando</button> <button id="btn3" disabled="true" onClick="download();">Descargar el documento firmado</button>
<br />
<br />
</div>
</asp:Content>
Javier Padrón Romero escribió:
Buenos días, No tengo mucha idea de programación y no he encontrado nada al respecto en el foro. El problema es que estoy usando la última versión del applet desde una página web muy muy muy sencilla que he hecho, no tengo capacidad para hacer ninguna virguería, pero funciona bien. Ahora tengo que poder llamarlo desde un código .NET que me han pasado y pasándole un fichero xml como parámetro. Se puede hacer esa llamada? Como sería? En caso que no se pudiese, imagino que si se podrá cargar directamente la página web, eso lo puedo buscar yo, pero no se si me podríais ayudar o saber si tenéis algún ejemplo de como pudiese ser el código de esa página para que tomará el fichero que yo le pasara desde .NET y ese fichero pasárselo al applet para que lo firmara, bueno tampoco se si se puede hacer o no... la verdad que estoy un poco perdido con este tema. Muchas gracias------------------------------------------------------------------------_______________________________________________ CryptoApplet mailing list [email protected] http://llistes.uji.es/mailman/listinfo/cryptoapplet
<<attachment: luismolina.vcf>>
_______________________________________________ CryptoApplet mailing list [email protected] http://llistes.uji.es/mailman/listinfo/cryptoapplet
