Thursday , 12 December 2024
HOT

Tạo mã bảo vệ captcha chống spam trong asp.net

Các trang web hiện nay sử dụng captcha rất phổ biến để tránh Spam. Captcha thường có dạng một hình ảnh hoặc đoạn flash chứa những kí tự ngẫu nhiên được làm biến dạng nhằm gây khó khăn cho các chương trình có khả năng nhận diện kí tự. Trong bài viết này tôi sẽ hướng dẫn tạo chức năng captcha bằng ASP.Net với ngôn ngữ là C#

Bước 1: Download MSCaptcha.dll và add vào thư mục Bin của ứng dụng – bạn có thể download đầy đủ code và thư viện ở liên kết cuối bài

Bước 2:  Trong web.config bên trong thẻ <httpHandlers> bạn add thêm

<add verb="GET" path="CaptchaImage.axd" type="MSCaptcha.CaptchaImageHandler, MSCaptcha"/>


Bước 3:
Đăng ký Assembly add thêm dòng code vào phía trên thẻ html của trang

<%@ Register Assembly="MSCaptcha" Namespace="MSCaptcha" TagPrefix="cc1" %>


Bước 4:
Viết code aspx như minh họa:

<div style="border:1px solid #DDD; width:320px; padding:10px">
    Mã bảo vệ:
    <asp:TextBox ID="TextBox1" runat="server" /><asp:Button ID="Button1" 
    runat="server" onclick="Button1_Click" Text="OK" Width="80px" />
    <cc1:CaptchaControl ID="ccJoin"
     runat="server" 
     CaptchaBackgroundNoise="Extreme" 
     CaptchaLength="5" 
     CaptchaHeight="60" 
     CaptchaWidth="210" 
     CaptchaLineNoise="None" 
     CaptchaMinTimeout="5"
     CaptchaMaxTimeout="240" />
     <asp:Label ID="Label1" runat="server" style="color: #FF3300"></asp:Label>
</div>


Bước 5:
Viết code C# như minh họa:

protected void Button1_Click(object sender, EventArgs e)
{
    ccJoin.ValidateCaptcha(TextBox1.Text);
    if (!ccJoin.UserValidated)
    {
        Label1.Text = "Mã bảo vệ chưa chính xác";
        return;
    }
    else
    {
        Label1.Text = "Thành công";
    }
}

Kết quả:

Các thuộc tính cần chú ý của CaptchaControl

– CaptchaBackgroundNoise: Thiết lập độ khó của Captcha – Có các giá trị “none”, “low”, “medium”, “high” or “extreme”
– CaptchaLength: Độ dài các ký tự xuất hiện của Capcha
– CaptchaHeight và CaptchaWidth – chiều cao và chiều rộng (bằng pixel) của hình ảnh capcha được tạo ra.
– CaptchaLineNoise: Thiết lập đường ngoắt ngoéo (:D không biết gọi là gì nữa) cho capcha – có các giá trị “none”, “low”, “medium”, “high” or “extreme”
Nếu đặt CaptchaLineNoise=”High” thì hình ảnh sẽ như sau:

– CaptchaChars – các chuỗi ký tự được sử dụng cho Captcha. Mặc định là “ABCDEFGHJKLMNPQRSTUVWXYZ23456789”. Nếu khai báo lại bạn nên tránh sử dụng các ký tự như O, 0, 1 vì sử dụng phông chữ khác nhau, chúng có thể gây nhầm lẫn.
– CaptchaMaximeout
– CaptchaMinTimeout

Ngoài ra còn nhiều thuộc tính khác tôi chưa nêu ở đây. Bạn sử dụng thì tự khám phá nhé

Link download project mẫu: Captcha.zip

Nguồn: h m c l i p . n e t

Leave a Reply

Your email address will not be published. Required fields are marked *

*