Quantcast How to implement Captcha in ASP.Net

How to implement Captcha in ASP.Net

by Neon Quach 15. Tháng Chín 2009 19:03

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…

MSCaptcha Control

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

 

 

captcha



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 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)

Tags: , , ,


Categories: asp.net | c# | vb.net

blog comments powered by Disqus

About me

I'm  currently employed as Software developer at sutrixmedia.com and also a Microsoft Certified Technology Specialist (MCTS), Microsoft Certified Professional Developer (MCPD) in Net Framework 2.0 and 3.5: Web Applications and MCTS .NET Framework 3.5, ADO.NET Applications

Powered by BlogEngine.NET 2.7.0.0 - Eco Theme by n3o Web Designers