views:

473

answers:

7

Hello, I have an ASP.Net application. It is an application where people fill out forms. Well, we would like for people to be able to sign the form electronically(as in, their hand written signature) so that the signatures are held in the server and displayed on the web page.

Is there any kind of support for doing this kinda thing without having to resort to ActiveX controls? We would really strongly like to stay away from those. Is there anything up and coming that could be of some help such as the Canvas HTML5 tag or anything like that? It'd be super neat if we could support both signature pads and tablet PCs.

Also, electronic signatures are required because we would prefer if they signed the form through the computer and stored it on our server rather than printing it off, signing it, and filing it away in some place to become out of date.

+1  A: 

When I was learning jQuery I wrote 'Simple Paint' program. This program had 100x100 div and color chooser. I could draw different things keeping left mouse button pressed. It took about 4 hours to write that program (i.e. it's very easy especially if we assume that I was learning jQuery and didn't know how to use it correctly).

P.S. you describe the strangest requirement I've ever heard.

Roman
The only problem with this is the external signature pads because they do not work like a tablet device.
Earlz
+2  A: 

I hardly doubt whether this is pleadable, as there is no possibility to do signature analysis etc. But I am no lawyer, so this might be worth another discussion :-).

Isn't there something like DigiD available in your country. It's a government issued identification mechanism with verification, that is used in the Netherlands to sign (for example) tax files.

Also check CanvasPaint. It's code has been open sourced by the author (see here). It is an Paint implementation in pure Javascript, using the <canvas> tag.

Jan Jongboom
There are laws concerning how digital signatures must be stored and used, but there is no "one official device".. Though digital signatures are still a bit shakey here in the US anyway.. Some people speculate that you need more than just an image of the signature to verify it is an authentic signature(for instance, amount of pressure on the tablet).. but I don't think much of anything has been tried in court.
Earlz
Ah well, as long as that isn't your point. You might want to check CanvasPaint, it meets your reqs. See me edit.
Jan Jongboom
A: 

If they aren't using a tablet PC then a mouse rendering of the "signature" might look nothing like they would normally sign. Unsure how the legality of this would hold up.

As an alternative implementation and likely equally viable one for online, make available a text box to type their name into as their "electronic signature". Then if the platform allows for a real sig to be carried out properly (e.g. known to be a tablet with pen) then let them sign normally instead.

Their "personal mark" on a filled out form might also simply be the fact they logged in to fill it out. Electronic sigs don't have to take on the format you would normally expect. Online implementations of offline things often don't translate properly or have unforeseen loopholes.

John K
+3  A: 

This isn't exactly an answer to your problem but if you are in the United States you will not need a handwritten signature for the document to be considered legally "signed." As long as the form they are "signing" meets certain authentication criteria, an online agreement is considered fully executed by an electronic acceptance. For example, in our system, people sign a document using the following:

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. 

For more information about the law that covers electronic signatures, see the "Digital Signatures Act."

Mark Brittingham
Yes, but basically our clients use our website to let other people fill out certain forms. So our clients clients need to be able to sign it in some authentic way.. so I don't think this would work, but I'll check out that link.
Earlz
Earlz - you are right that this wouldn't quite work because there isn't any authentication security - we don't have a reasonable expectation that the person clicking the button is the person who is agreeing to the terms. Now, if you had some other form of authentication (e.g. the client has created a private account on your system *before* they would be put in a position to sign this form) then you could make this work. You would simply require that the participant authenticate *here* by entering their account ID and password before they click the acceptance button.
Mark Brittingham
A: 

You can do it with an HTML5 canvas. Check out this drawing apps made entirely with HTML5. Awesome!

http://mugtug.com/sketchpad/

Eduardo Molteni
A: 

Not sure how an average person would sign using a mouse... We have done something like this, but what we did was provide the page of the form requiring a signature for download, which they could then sign, scan and upload again.

Wet signature is a nuisance, but still necessary in some cases...

Paddy
A: 

Actually what we ended up doing is the following:

On the client's machine a custom made web server is run. The web server does the interfacing with the signature pad. We have control over everyone using our site so this is not a problem.

On our website we have a series of buttons like "sign" "clear" and "done". When the sign button is clicked it will begin a process which will poll the localhost server every 50 or 100ms or so with an image tag created like so <img src="http://127.0.0.1?signature&amp;time=..." /> (where the ... is the current time so no caching issues). This makes it so that the image can be clearly seen in the browser and works well for every browser I've tested it in.

Then when the user clicks done in order to get the image's actual data to be accessible from the server we use a JSONP request(so that we can cross the domain border) to get a base64 encoded value of the image and/or signature data. We store this in a hidden field. Whenever the user clicks save for the form(or whatever) then this hidden field gets sent to the server and saved.

This would also be easy to have so that there is an option for tablet computers so that it uses a <canvas> control or similar to allow direct drawing on the screen.

Earlz