Captcha là 1 trong những tiện ích giúp chúng ta bảo vệ website khỏi spam, thường cho form nhập liệu như trang liên hệ, hoặc 1 số chương trình tự động submit, như trang đăng nhập hoặc đăng ký.
Bài viết này mình sẻ hướng dẫn cách sử dụng 1 control Captcha free, đó là MSCaptcha.
http://www.mondor.org/files/mscaptcha.zip
Tải control MSCaptcha về giải nén.
Bước 1: tạo 1 website asp.net
Bước 2: Thêm captcha vào toolbox bằng cách Right Click trên toolbox và chọn choose Items…

Bước 3: Kéo MSCapcha từ toolbox vào webform, 1 textbox dùng để nhập captcha, 1 button submit, và 1 label xuất kết quả của việc nhập captcha..
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="MSCaptcha" Namespace="MSCaptcha" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<cc1:CaptchaControl ID="CaptchaControl1" runat="server" CaptchaBackgroundNoise="Medium"
CaptchaLineNoise="Low" />
</div>
<asp:TextBox ID="TextBoxCaptcha" runat="server"></asp:TextBox>
<asp:Button ID="ButtonValidate" runat="server" Text="Validate" OnClick="ButtonValidate_Click" />
<p>
<asp:Label ID="LabelResult" runat="server" Visible="False"></asp:Label>
</p>
</form>
</body>
</html>
Bước 4: Thêm vào web.config ở section <httphandlers>
<add verb="GET" path="CaptchaImage.axd" type="MSCaptcha.CaptchaImageHandler, MSCaptcha"/>
</httpHandlers>
Bước 5: Kiểm tra tính hợp lệ của Captcha
protected void ButtonValidate_Click(object sender, EventArgs e)
{
CaptchaControl1.ValidateCaptcha(TextBoxCaptcha.Text.Trim());
if (CaptchaControl1.UserValidated)
{
LabelResult.Visible = true;
LabelResult.Text = "You are human...";
}
else
{
LabelResult.Visible = true;
LabelResult.Text = "Captcha is invalid, Please try again...";
}
}
Protected Sub ButtonSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonSubmit.Click
CaptchaControl1.ValidateCaptcha(TextBoxCaptchaInput.Text)
If CaptchaControl1.UserValidated Then
Label1.Text = "You are human..."
Else
Label1.Text = "Captcha is invalid, Please try again..."""
End If
End Sub

Một số thuộc tính của MSCaptcha:
CaptchaBackgroundNoise: có các giá trị "none", "low", "medium", "high" or "extreme", điều chỉnh độ hột cho nền của MSCaptcha, Low là giá trị mặc định.
CaptchaLength: Độ dài của Capcha, thông thường 4-5 là vừa.
CaptchaHeight và CaptchaWidth: Độ cao và độ rộng tính bằng pixel.
CaptchaChars: các ký tự hiển thị cho captcha, nên tránh dùng O,0 hay 1, I, vì sẻ rất khó nhận biết nếu sử dụng font có hình dáng khó nhìn.
CaptchaMaximeout: Thời gian tối đa để captcha có hiệu lực.
CaptchaMinTimeout: Thời gian tối thiểu để captcha có hiệu lực.
Captcha.rar (38.02 kb)