CAPTCHA for CommunityServer 2007

[via Thomas Freudenberg]

While my personal blog site was still in CS1.1 system, I used ReverseDOS to act as underlying spam filter also used Dan Bartels' CAPTCHA control for second level spam prevention tool.

While my blog site upgrading to CommunityServer 2007, I am still using ReverseDOS as the underlying spam filter. thanks to the HttpModule design of this application, the installation was pretty smooth by just adding the module to web.config file also copy the dll file to bin folder, and the spam filter config file I used in CS1.1 can be used in new version without modifications.

Then I am trying to find CAPTCHA control for using in CommunityServer 2007. It seemed pretty good while reading Jeffrey's post that Timothy Humphrey's CAPTCHA control for CS2.1 should be a choice but when I tried to recompile the source with CommunityServer 2007, found that the SubDomain module contained in Timothy's control can not build due to the reason that in CommunityServer 2007, the source code of class "CommunityServer.Components.SiteUrlsData" (at source code file ~\source\Components\Components\SiteUrlsData.cs)were all commented out and the class can not be found anymore. Also this CAPTCHA for CS2.1 required modification of skin ascx files to make it work but in the new skin architecture there were no ascx file anymore, means the whole skin rules that worked for CS2.1 may not work in CS2007, by those reasons I gave up using it as CAPTCHA in my blog site.

Later found that Brendan Tompkins had just done a CHAPCHA control exactly for CommunityServer 2007 (with source code published), I just downloaded it and use it as the CAPTCHA control on my blog site. as this control used ASP.NET 2.0 Control Adapter Architecture  in the design, it had no need to modify skin file to let it work but just to add the CAPTCHA image generation http handler at web.config file, also add the control adapter definitions to default.browser file under App_Browsers folder, only those 2 steps the control worked for the entire CommunityServer site, pretty elegant and convenient.

Just one simple notice that (thanks to Yama's feedback), while testing this control one have to be in anonymous (not logged in) mode to see this control appears. in a user-logged-in state the control will not show up (since a logged-in user considered not spammers).

For more info about ASP.NET 2.0 Control Adapter Architecture, refer to this post.

Technorati tags: blog, communityserver, asp.net, architecture, adapter, spam, filter, programming, captcha