I have a love/hate relationship with those CAPTCHA tests on websites. I understand why, and am fascinated at just how good the human mind is at pattern resolution. Yet, they’re additional typing. Anything to foil a spambot I guess.
I was looking into adding a test into a project of my own, and I came across these references. Examples of the first article are shown beneath it.
This article explains how intelligent applications from Carnegie Mellon University and Berkeley researchers counter auto registration spam programs and how to build your own using ASP.NET & XML Web services.
What’s unique here is my implementation – it’s generic enough to use in a classic ASP page, or in an ASP.NET page, it does NOT require the use of Session State, and that’s what makes it more useful. The key here is that we use an aspx page to generate the image, and we simply make our image tag’s src property point to this page.
This article demonstrates how to create such an image and employ it within an ASP.NET web form.
CAPTCHA.NET is the homepage of CMU’s CAPTCHA Project
Formshield is a free .NET CAPTCHA control available at http://dotnetfreak.co.uk/blog/archive/2004/11/06/166.aspx.
Many thanks to Kevin Gearing! There are some samples as well–very cool.
FormShield started out as a simple project with just one aim – to prevent automated form submission using dynamically generated images.
Not exactly a new idea – dynamically generated images requiring the user to enter the text found on the image have been around for quite a while (see http://www.captcha.net/), preventing automated sign-ups to free e-mail services such as HotMail and Yahoo, and automated whois lookups on domain names on sites such as Network Solutions.
Whilst some code exists on Code Project (http://www.codeproject.com/aspnet/CaptchaImage.asp), there didn’t however seem to be a free, easy-to-use and customisable control for ASP.NET with full designer integration that could generate the relevant images. So, looking for an excuse to delve into GDI+, FormShield was born and my idea of a ‘simple’ control was dropped…