I've received several requests to package up my CAPTCHA mod for CS 2.0.
Here it is. Sorry for the delay.
It's a very simple mod, but has a few pieces to it. I've laid out the files and where they should go. By the way, I've been getting spammed from my Contact Form in CS 2.0 (first time for that since using CS) so I added CAPTCHA to my Contact Form as well. That is included in this mod. Feel free to say "Howdy!" with my CAPTCHA-enabled
Contact Form!
Here's a screenshot of the ZIP.

Here's an excerpt from the Readme.txt on a recommended deployment strategy:
1) Add CaptchaService.cs and Utilities.cs to your CS.Components project. Utilities is an excerpt of my full Utilities class and contains a single method for this mod: GenerateRandomCode()
2) Add JpegImage.aspx and JpegImage.aspx.cs to your web project. My configuration places these files in my /blog directory, but they can be anywhere in your web directories as long as it is hyperlinked accurately from the Skin .ASCX controls.
3) Open the Comment Form (Skin-CommentForm.ascx) and add the area inside the CAPTCHA START/END comment tags to your existing Comment Form. You may wish to do the same with your Contact Skin for added protection.
4) Go to the CommentForm class (and ContactForm, if you wish) and add support for the CAPTCHA controls:
private Label Message;
private Label lblImage;
private TextBox CodeNumberTextBox;
You will then need to make changes in the AttachChildControls() and btnSubmit_Click(object sender, EventArgs e) methods.
The logic of CAPTCHA in this control class is as follows:
A) When the Comment Form loads an image is created and displayed in the lblImage Label as well as stored in a Cookie named "AreYouHuman."
B) When submit is clicked, the CodeNumberTextBox is compared with the "AreYouHuman" Cookie value. If matches, A-OK. If not, an error message displays in the Message Label, a new number generated in lblImage and a new "AreYouHuman" Cookie is generated.
C) Rinse and Repeat.
Let me know how it goes.
CAPTCHA Lives![tags: Community Server, CAPTCHA]