After fighting with comments spam I took an hour to implement CAPTCHA on my blog. The implementation based on amazing FormShield control .FormShield control is free for both personal and commercial use.
Integrating with the .Text Blogging Engine
FormShield Control Features:
- Generates BMP, GIF, JPEG, PNG or TIFF images.
- Choose the pixel format and smoothing mode used to render the image.
- Set the height, width and alignment of the image as well as the alternate text displayed.
- Image is built using 3 layers – Background, foreground and noise.
- Provides 6 fill styles, 4 gradient styles, 53 hatch styles and 2 colors for each layer.
- Set the length and case (lower, mixed or upper) of the automatically generated text.
- Choose the type of characters you want to use to generate the text (alpha, numeric, symbols or a combination).
- Choose the fonts you want to use to draw the text as well as the font style (4 combinable styles, 16 in total).
- Pick a text effect (5 combinable effects, 23 in total) and decrease the noise level to decrease readability.
- Draw a border on the image using one of 5 styles and your choice of color.
- Randomise the fill style, gradient style, hatch style, font style, text case, text style, text effect and border style.
- 6 Presets included; Default, Fire, Forest, Sand, Sea, ChessBoard.
- Supports 3 persistent methods; ViewState, SessionState or FormField (hidden input field) – ideal if ViewState and/or SessionState isn’t available to persist property values on postback.
- Values stored using any of the persistent methods are automatically encrypted for additional security.
- Image is rendered on demand (either inline or using an Image Provider), and not saved as a file.
- Encrypts the querystring to prevent deciphering by reading the HTML source.
- Works with existing ASP.NET validation controls as well as StringCompareValidator.
- Can be used on standalone WebForms as well as UserControls.
- Supports .Text Blogging Engine (no compile needed) to prevent spam on blogs.
- Full Visual Studio .NET designer integration, including optional rendering whilst in design mode.