图书管理登录注册

 注册

public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string txtEmail = context.Request["txtEmail"]; string userName = context.Request["txtName"]; Regex reg=new Regex(@"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"); if (!reg.IsMatch(txtEmail)) { context.Response.Write("邮箱错误!!"); return; } }

 

画验证码

public class ValidateCode : IHttpHandler, IRequiresSessionState
{
    HttpContext context;
    public void ProcessRequest (HttpContext context1) {
        this.context = context1;
        CreateCheckCodeImage(GenerateCheckCode());
    }

    private string GenerateCheckCode()
    {
        int number;
        char code;
        string checkCode = String.Empty;

        System.Random random = new Random();

        for (int i = 0; i < 5; i++)
        {
            number = random.Next();

            if (number % 2 == 0)
                code = (char)('0' + (char)(number % 10));
            else
                code = (char)('0' + (char)(number % 10));
            //code = (char)('A' + (char)(number % 26));

            checkCode += code.ToString();
        }

        //Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));
        context.Session.Add("vCode", checkCode);
        return checkCode;
    }

    private void CreateCheckCodeImage(string checkCode)
    {
        if (checkCode == null || checkCode.Trim() == String.Empty)
            return;

        System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
        Graphics g = Graphics.FromImage(image);

        try
        {
            //生成随机生成器
            Random random = new Random();

            //清空图片背景色
            g.Clear(Color.White);

            //画图片的背景噪音线
            for (int i = 0; i < 25; i++)
            {
                int x1 = random.Next(image.Width);
                int x2 = random.Next(image.Width);
                int y1 = random.Next(image.Height);
                int y2 = random.Next(image.Height);

                g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
            }

            Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
            System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
            g.DrawString(checkCode, font, brush, 2, 2);

            //画图片的前景噪音点
            for (int i = 0; i < 100; i++)
            {
                int x = random.Next(image.Width);
                int y = random.Next(image.Height);

                image.SetPixel(x, y, Color.FromArgb(random.Next()));
            }

            //画图片的边框线
            g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);

            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
            context.Response.ClearContent();
            context.Response.ContentType = "image/Gif";
            context.Response.BinaryWrite(ms.ToArray());
        }
        finally
        {
            g.Dispose();
            image.Dispose();
        }
    }

 

正则校验

 1 public class ValidateReg : IHttpHandler,System.Web.SessionState.IRequiresSessionState
 2     {
 3         BLL.UserManager userManager = new BLL.UserManager();
 4         public void ProcessRequest(HttpContext context)
 5         {
 6             context.Response.ContentType = "text/plain";
 7            string action=context.Request["action"];
 8            if (action == "mail")
 9            {
10                CheckUserMail(context);
11            }
12            else if (action == "code")//验证码校验
13            {
14                string validateCode = context.Request["validateCode"];
15                if (Common.WebCommon.CheckValidateCode(validateCode))
16                {
17                    context.Response.Write("验证码正确!!");
18                }
19                else
20                {
21                    context.Response.Write("验证码错误!!");
22                }
23            }
24                 
25            
26         }
27         /// <summary>
28         /// 校验用户邮箱
29         /// </summary>
30         private void CheckUserMail(HttpContext context)
31         {
32             string userMail = context.Request["userMail"];
33             if (userManager.CheckUserMail(userMail))
34             {
35                 context.Response.Write("邮箱已经存在");
36             }
37             else
38             {
39                 context.Response.Write("邮箱可以注册");
40             }
41         }
42        
43            
44        
45 
46         public bool IsReusable
47         {
48             get
49             {
50                 return false;
51             }
52         }
53     }

 

 

公共类校验

 1   public static void GetFilePath(object obj)
 2        {
 3            HttpContext context = (HttpContext)obj;
 4            string filePath = context.Request.MapPath("/Images/body.jpg");
 5 
 6           // string filePath = HostingEnvironment.MapPath("/Images/body.jpg");
 7            //string filePath=
 8           // return "";
 9        }
10        /// <summary>
11        /// 完成验证码校验
12        /// </summary>
13        /// <returns></returns>
14        public static bool CheckValidateCode(string validateCode)
15        {
16            bool isSucess = false;
17            if (HttpContext.Current.Session["vCode"] != null)
18            {
19               // string txtCode = HttpContext.Current.Request["txtCode"];
20                string sysCode =HttpContext.Current.Session["vCode"].ToString();
21                if (sysCode.Equals(validateCode, StringComparison.InvariantCultureIgnoreCase))
22                {
23                    isSucess = true;
24                    HttpContext.Current.Session["vCode"] = null;
25                }
26 
27            }
28            return isSucess;
29        }

 

posted @ 2017-04-09 20:12  liusheng11188  阅读(318)  评论(0编辑  收藏  举报