RSSAsp.net MVC

ASP.Net – Xuất tập tin aspx thành ảnh captcha

Đây không phải là vấn đề mới chỉ có mục đích bổ sung cho bài viết Tạo captcha đơn giản cho trang web với ASP.Net. Trong bài này bạn sẽ được biết thêm cách để đổi phần mở rộng của tập tin aspx mà vẫn giữ nguyên đặc tính của nó. Tôi sẽ dùng phương pháp này để biến một tập tin aspx thành một tập tin ảnh captcha ra trang web.

ASP_NetĐây không phải là vấn đề mới chỉ có mục đích bổ sung cho bài viết Tạo captcha đơn giản cho trang web với ASP.Net. Trong bài này bạn sẽ được biết thêm cách để đổi phần mở rộng của tập tin aspx mà vẫn giữ nguyên đặc tính của nó. Tôi sẽ dùng phương pháp này để biến một tập tin aspx thành một tập tin ảnh captcha ra trang web.

Download DemoCaptcha.rar (VWD 2008)

Đầu tiên bạn trang chính Default.aspx và thiết kế như sau.

Default.aspx:

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>




    Untitled Page


    
    

&nbsp;

 

Trong code-behind:

Default.aspx.cs:

 

using System;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        if (txtCaptcha.Text.Equals(Session["captcha"].ToString(), StringComparison.OrdinalIgnoreCase))
            lblMessage.Text = "Chuỗi xác nhận chính xác";
        else
            lblMessage.Text = "Vui lòng nhập đúng chuỗi xác nhận";
    }
}

 

Tiếp theo bạn thêm một WebForm mới. Tên của file này bạn sẽ đặt phần mở rộng là .gif, và bỏ tùy chọn Place code in separate file để viết code-inline và code-behind chung trong một file duy nhất, như hình sau:

Add Captcha aspx file

Tiếp đến bạn import các namespace cần thiết và viết code cho sự kiện Page_Load, mã nguồn hoàn chỉnh của trang như sau:

Captcha.gif:

 

<%@ Page Language="C#" %>

<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Drawing2D" %>
<%@ Import Namespace="System.IO" %>






    Untitled Page


    

 

Mã nguồn tương tự như trong bài trước tôi trình bày, tuy nhiên khi chạy thử thì hình ảnh captcha sẽ không hiển thị được vì server không thực hiện phương thức Page_Load của file Captcha.gif.  Để khắc phục ta cần đăng kí phần mở rộng mới này vào tập tin web.config để nó được “đối xử” như một tập tin aspx thông thường.

Có hai khái niệm ta cần tìm hiểu trước khi tiếp tục:

-       HTTP Handler: Các thành phần thuộc dạng này được hiện thực từ interface System.Web.IHttpHandle, điều này cho phép chúng được phép nhận các request với giao thức  HTTP, và chúng được gọi trực tiếp dựa vào tên tập tin.

-       Build Provider: thành phần này định nghĩa các loại file và tài nguyên sẽ được biên dịch. Trong tập tin web.config bạn có thể không thấy các định nghĩa này vì chúng được thiết lập mặc định các kiểu file như aspx, ascx, master,…

Bây giờ ta bắt đầu thực hành hai khái niệm trên để đăng kí phần mở rộng .gif cho dự án này.

Bạn mở tập tin web.config, tìm thẻ và thêm một thẻ con vào như sau:

 


	
[…]

 

Trong thẻ thêm các dòng được highlight sau vào:

 


	
	[…]
	
	
		
	

 

Vậy là xong, bạn có thể chạy thử và xem kết quả như hình sau:

Demo Captcha

Việc lưu hay xuất 1 tập tin xuống client cũng có cách làm cũng tương tự như trong bài này, dùng Response để xuất nội dung ra (nhị phân hoặc text) và tất nhiên do tính bảo mật bạn không thể lưu “âm thầm” hay chay file được.

http://yinyangit.wordpress.com

RSSAsp.net MVC

ASP.Net – Xuất tập tin aspx thành ảnh captcha

Đây không phải là vấn đề mới chỉ có mục đích bổ sung cho bài viết Tạo captcha đơn giản cho trang web với ASP.Net. Trong bài này bạn sẽ được biết thêm cách để đổi phần mở rộng của tập tin aspx mà vẫn giữ nguyên đặc tính của nó. Tôi sẽ dùng phương pháp này để biến một tập tin aspx thành một tập tin ảnh captcha ra trang web.

ASP_NetĐây không phải là vấn đề mới chỉ có mục đích bổ sung cho bài viết Tạo captcha đơn giản cho trang web với ASP.Net. Trong bài này bạn sẽ được biết thêm cách để đổi phần mở rộng của tập tin aspx mà vẫn giữ nguyên đặc tính của nó. Tôi sẽ dùng phương pháp này để biến một tập tin aspx thành một tập tin ảnh captcha ra trang web.

Download DemoCaptcha.rar (VWD 2008)

Đầu tiên bạn trang chính Default.aspx và thiết kế như sau.

Default.aspx:

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>




    Untitled Page


    
    

&nbsp;

 

Trong code-behind:

Default.aspx.cs:

 

using System;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        if (txtCaptcha.Text.Equals(Session["captcha"].ToString(), StringComparison.OrdinalIgnoreCase))
            lblMessage.Text = "Chuỗi xác nhận chính xác";
        else
            lblMessage.Text = "Vui lòng nhập đúng chuỗi xác nhận";
    }
}

 

Tiếp theo bạn thêm một WebForm mới. Tên của file này bạn sẽ đặt phần mở rộng là .gif, và bỏ tùy chọn Place code in separate file để viết code-inline và code-behind chung trong một file duy nhất, như hình sau:

Add Captcha aspx file

Tiếp đến bạn import các namespace cần thiết và viết code cho sự kiện Page_Load, mã nguồn hoàn chỉnh của trang như sau:

Captcha.gif:

 

<%@ Page Language="C#" %>

<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Drawing2D" %>
<%@ Import Namespace="System.IO" %>






    Untitled Page


    

 

Mã nguồn tương tự như trong bài trước tôi trình bày, tuy nhiên khi chạy thử thì hình ảnh captcha sẽ không hiển thị được vì server không thực hiện phương thức Page_Load của file Captcha.gif.  Để khắc phục ta cần đăng kí phần mở rộng mới này vào tập tin web.config để nó được “đối xử” như một tập tin aspx thông thường.

Có hai khái niệm ta cần tìm hiểu trước khi tiếp tục:

-       HTTP Handler: Các thành phần thuộc dạng này được hiện thực từ interface System.Web.IHttpHandle, điều này cho phép chúng được phép nhận các request với giao thức  HTTP, và chúng được gọi trực tiếp dựa vào tên tập tin.

-       Build Provider: thành phần này định nghĩa các loại file và tài nguyên sẽ được biên dịch. Trong tập tin web.config bạn có thể không thấy các định nghĩa này vì chúng được thiết lập mặc định các kiểu file như aspx, ascx, master,…

Bây giờ ta bắt đầu thực hành hai khái niệm trên để đăng kí phần mở rộng .gif cho dự án này.

Bạn mở tập tin web.config, tìm thẻ và thêm một thẻ con vào như sau:

 


	
[…]

 

Trong thẻ thêm các dòng được highlight sau vào:

 


	
	[…]
	
	
		
	

 

Vậy là xong, bạn có thể chạy thử và xem kết quả như hình sau:

Demo Captcha

Việc lưu hay xuất 1 tập tin xuống client cũng có cách làm cũng tương tự như trong bài này, dùng Response để xuất nội dung ra (nhị phân hoặc text) và tất nhiên do tính bảo mật bạn không thể lưu “âm thầm” hay chay file được.

http://yinyangit.wordpress.com

Tags:

Nếu bạn thấy bài viết hữu ích, hãy nhấn +1 và các liên kết chia sẻ để website ngày càng phát triển hơn. Xin cám ơn bạn!

Nếu là khách, bạn phải đăng ký tài khoản và kích hoạt tài khoản để bình luận được hiển thị ở đây.
Thông tin kích hoạt gửi đến mail của bạn.

Tin mới hơn

Tin cũ hơn