日期:2014-05-16  浏览次数:20539 次

有验证码的登陆界面(ajax,ashx技术制作)


前提:要引用AjaxPro.2.dll(右键--添加引用---选AjaxPro.2.dll文件即可)

备注:程序中的红色部分是经常会搞错的地方,请大家重点关注下。


1、首先制作ashx文件,功能(产生验证码图片,并把验证码保存在Session中,便于以后比对。

[ VDC.ashx ]文件

using System;
using System.Web;
using System.Drawing;
namespace TestExtjsJson.ashx
{
    /// <summary>
    /// VDC 的摘要说明
    /// </summary>
    public class VDC : IHttpHandler, System.Web.SessionState.IRequiresSessionState
    {
        //产生验证码的字符集(去除I 1 l L,O 0等易混字符)
        public string charSet = "2,3,4,5,6,8,9,A,B,C,D,E,F,G,H,J,K,M,N,P,R,S,U,W,X,Y";

        public void ProcessRequest(HttpContext context)
        {
            string validateCode = CreateRandomCode(4);
            //context.Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));//保存到Cookies 里,但前提对方浏览器允许Cookies操作!
            context.Session["CheckCode"] = validateCode;       //保存到Session中
            CreateImage(validateCode, context);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }

        /// <summary>
        /// 生成验证码
        /// </summary>
        /// <param name="n">位数</param>
        /// <returns>验证码字符串</returns>
        private string CreateRandomCode(int n)
        {
            string[] CharArray = charSet.Split(',');
            string randomCode = "";
            int temp = -1;

            Random rand = new Random();
            for (int i = 0; i < n; i++)
            {
                if (temp != -1)
                {
&nbs