2010-01-25 53 views
16

Tengo una aplicación ASP.Net. Es una aplicación donde las personas completan formularios. Bueno, nos gustaría que las personas puedan firmar el formulario electrónicamente (como en su firma manuscrita) para que las firmas se guarden en el servidor y se muestren en la página web.Firmas electrónicas en las páginas web

¿Hay algún tipo de soporte para hacer algo así sin tener que recurrir a los controles ActiveX? Realmente nos gustaría mantenernos alejados de aquellos. ¿Hay algo nuevo que pueda ser de alguna ayuda, como la etiqueta Canvas HTML5 o algo así? Sería estupendo si pudiéramos admitir tanto las tabletas de firma como las tabletas.

Además, se requieren firmas electrónicas porque preferiríamos que firmaran el formulario a través de la computadora y lo almacenaran en nuestro servidor en lugar de imprimirlo, firmarlo y archivarlo en algún lugar para quedar desactualizado.

+1

¿Para qué vas a usar esto exactamente? Para mí, parece que podrías estar complicando algo. Si elabora un poco más sobre el problema que está tratando de resolver, tal vez alguien sugiera una solución más simple :) – Leif

+0

earlz - No creo que las firmas digitales en los EE. UU. Sean inestables en los EE. UU. En absoluto ya que hemos confiado en ellos durante años. Ver mi respuesta en otro lugar en la página. –

+0

Para cualquiera que encuentre esto que piense: solo use contraseñas (o clave privada, etc.) está en lo correcto, esta es la mejor solución si solo quiere verificar a los usuarios. Sin embargo, OP e I tienen un requisito para capturar * firmas de no usuario *. – MGOwen

Respuesta

0

En realidad lo que terminamos haciendo es el siguiente:

en la máquina del cliente que se ejecuta un servidor web por encargo. El servidor web hace la interfaz con el panel de firmas. Tenemos control sobre todos los que usan nuestro sitio, así que esto no es un problema.

En nuestro sitio web tenemos una serie de botones como "firmar", "borrar" y "listo". Cuando se hace clic en el botón de signo, se iniciará un proceso que sondeará el servidor localhost cada 50 o 100 ms o más con una etiqueta de imagen creada como <img src="http://127.0.0.1?signature&time=..." /> (donde el ... es la hora actual, por lo que no hay problemas de almacenamiento en caché). Esto hace que la imagen se pueda ver claramente en el navegador y funciona bien para cada navegador en el que lo haya probado.

Luego, cuando el usuario hace clic para que la información real de la imagen sea accesible desde el servidor usamos una solicitud JSONP (para que podamos cruzar el borde del dominio) para obtener un valor codificado en base64 de la imagen y/o datos de firma. Almacenamos esto en un campo oculto. Cada vez que el usuario hace clic en guardar para el formulario (o lo que sea), este campo oculto se envía al servidor y se guarda.

Esto también sería fácil de tener, por lo que existe una opción para tabletas que utiliza un control <canvas> o similar para permitir el dibujo directo en la pantalla.

1

Cuando estaba aprendiendo jQuery, escribí el programa 'Simple Paint'. Este programa tenía 100x100 div y selector de color. Podría dibujar cosas diferentes manteniendo presionado el botón izquierdo del mouse. Tomó aproximadamente 4 horas escribir ese programa (es decir, es muy fácil, especialmente si asumimos que estaba aprendiendo jQuery y no sabía cómo usarlo correctamente).

P.S. usted describe el requisito más extraño que he escuchado.

+0

El único problema con esto son los pads de firmas externos porque no funcionan como un dispositivo de tableta. – Earlz

3

No tengo dudas de si esto es pleabilizable, ya que no hay posibilidad de hacer análisis de firmas, etc. Pero no soy abogado, por lo que podría valer la pena otra discusión :-).

No hay algo como DigiD disponible en su país. Es un mecanismo de identificación emitido por el gobierno con verificación, que se utiliza en los Países Bajos para firmar (por ejemplo) archivos de impuestos.

También compruebe CanvasPaint (dominio expirado). Su código ha sido abierto por el autor (ver here). Es una implementación de Paint en JavaScript puro, utilizando la etiqueta <canvas>.

+1

Existen leyes sobre cómo deben almacenarse y utilizarse las firmas digitales, pero no existe un "único dispositivo oficial". Aunque las firmas digitales todavía son un poco defectuosas aquí en los EE. UU. Algunas personas especulan que usted necesita más que solo un imagen de la firma para verificar que sea una firma auténtica (por ejemplo, la cantidad de presión sobre la tableta) ... pero no creo que se haya intentado algo en los tribunales. – Earlz

+0

Ah bien, siempre que ese no sea su punto. Es posible que desee comprobar CanvasPaint, cumple sus requisitos. Verme editar. –

0

Si no están utilizando una tableta, entonces una representación del mouse de la "firma" puede parecerse a lo que normalmente se firmaría. No estoy seguro de cómo se mantendría la legalidad de esto.

Como una implementación alternativa y probablemente igualmente viable en línea, ponga a disposición un cuadro de texto para escribir su nombre como su "firma electrónica". Luego, si la plataforma permite que se lleve a cabo una sig real correctamente (por ejemplo, se sabe que es una tableta con bolígrafo), entonces déjelos firmar normalmente.

Su "marca personal" en un formulario completo también puede ser simplemente el hecho de que haya iniciado sesión para completarlo. Los sigs electrónicos no tienen que tomar el formato que normalmente esperarías. Las implementaciones en línea de cosas fuera de línea a menudo no se traducen correctamente o tienen lagunas imprevistas.

5

Esto no es exactamente una respuesta a su problema, pero si se encuentra en los Estados Unidos no necesitará una firma manuscrita para que el documento se considere legalmente "firmado". Siempre que la forma que están "firmando" cumpla con ciertos criterios de autenticación, un acuerdo en línea se considera totalmente ejecutado mediante una aceptación electrónica.Por ejemplo, en nuestro sistema, la gente firma de un documento mediante el siguiente:

My Name: Mark Graquel 
My System ID: 998877 
Today's Date: 1/25/2010 

You agree that the Name and/or ID shown above fully, accurately and uniquely 
identifies you in our database. You furthermore agree that your submission of 
this form, via the "I Accept" button, shall constitute the execution of this 
document in exactly the same manner as if you had signed, by hand, a paper 
version of this agreement. 

Para obtener más información acerca de la ley que cubre las firmas electrónicas, ver la "Digital Signatures Act."

+1

Sí, pero básicamente nuestros clientes usan nuestro sitio web para permitir que otras personas llenen ciertos formularios. Por lo tanto, los clientes de nuestros clientes deben poder firmarlo de manera auténtica ... así que no creo que esto funcione, pero veré ese enlace. – Earlz

+0

Earlz: tiene razón en que esto no funcionaría porque no hay ninguna seguridad de autenticación: no tenemos una expectativa razonable de que la persona que hace clic en el botón sea la persona que acepta los términos. Ahora, si tuviera alguna otra forma de autenticación (por ejemplo, si el cliente ha creado una cuenta privada en su sistema * * antes de que estén en condiciones de firmar este formulario), puede hacer que esto funcione. Simplemente requerirá que el participante autentique * aquí * ingresando su identificación de cuenta y contraseña antes de que hagan clic en el botón de aceptación. –

0

usted puede hacerlo con un canvas de HTML5. Echa un vistazo a estas aplicaciones de dibujo hechas completamente con HTML5. ¡Increíble!

http://mugtug.com/sketchpad/

-1

No estoy seguro de cómo una persona promedio podría firmar usando un ratón ... Hemos hecho algo como esto, pero lo que hicimos fue ofrecer la página de la forma que requiere una firma para su descarga, que pudieran luego, firme, escanee y cargue nuevamente.

firma húmedo es una molestia, pero sigue siendo necesario en algunos casos ...

4

Tal vez esto jQuery plugin: http://thomasjbradley.ca/lab/signature-pad/

API de servicio de firma electrónica, como DocuSign y EchoSign le asegurará un mayor cumplimiento, y tal vez también de mejores facilidad de uso para sus clientes/clientes a través de su manejo de la diferentes casos de uso en el proceso de diseño (más de lo que piensas).

Para su situación y para pasar los documentos que ha generado, sus API pueden ser restrictivas dada la magia de pdf. legalesign.com (estoy involucrado en este proyecto) es un sistema más abierto que tiene el resultado de una integración API más profunda para manejar esto. Estamos en versión beta y aún no hemos lanzado una API, pero nos complace escuchar indicaciones de interés.

Cuestiones relacionadas