C#实现简单验证码

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Collections;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.WebControls;
  9. using System.Web.UI.WebControls.WebParts;
  10. using System.Web.UI.HtmlControls;
  11. using System.IO;
  12. using System.Drawing.Imaging;
  13. using System.Drawing;
  14. public partial class Image : System.Web.UI.Page
  15. {
  16.     protected void Page_Load(object sender, EventArgs e)
  17.     {
  18.         string tmp = RndNum(Convert.ToInt16(6));
  19.         Session["verify"] = tmp;
  20.         ValidateCode(tmp);
  21.     }
  22.     private void ValidateCode(string VNum)
  23.     {
  24.         Bitmap Img = null;
  25.         Graphics g = null;
  26.         MemoryStream ms = null;
  27.         int gheight = VNum.Length * 9;
  28.         Img = new Bitmap(gheight, 18);
  29.         g = Graphics.FromImage(Img);
  30.         //背景颜色
  31.         g.Clear(Color.WhiteSmoke);
  32.         //文字字体
  33.         Font f = new Font("Tahoma", 9);
  34.         //文字颜色
  35.         SolidBrush s = new SolidBrush(Color.Red);
  36.         g.DrawString(VNum, f, s, 3, 3);
  37.         ms = new MemoryStream();
  38.         Img.Save(ms, ImageFormat.Jpeg);
  39.         Response.ClearContent();
  40.         Response.ContentType = "image/Jpeg";
  41.         Response.BinaryWrite(ms.ToArray());
  42.         g.Dispose();
  43.         Img.Dispose();
  44.         Response.End();
  45.     }
  46.     private string RndNum(int VcodeNum)
  47.     {
  48.         string MaxNum = "";
  49.         string MinNum = "";
  50.         for (int i = 0; i < 5; i++)//这里的4是验证码的位数
  51.         {
  52.             MaxNum = MaxNum + "5";
  53.         }
  54.         MinNum = MaxNum.Remove(0, 1);
  55.         Random rd = new Random();
  56.         string VNum = Convert.ToString(rd.Next(Convert.ToInt32(MinNum), Convert.ToInt32(MaxNum)));
  57.         return VNum;
  58.     }
  59. }
  60. --------------------------以上是网页的验证码
  61. //在winform情况下:可以将数字显示在label控件上
  62.  private void label1_Paint(object sender, PaintEventArgs e)
  63.         {
  64.             Random rd = new Random();
  65.             string VNum = Convert.ToString(rd.Next(1000, 9999));//这里的VNUM可以设置为全局变量以便获取
  66.             Graphics g = e.Graphics;//创建一个label的画板
  67.             g.Clear(Color.White);
  68.             // Pen p = new Pen(Color.Red);
  69.             Font f = new Font("Tahoma", 9);
  70.             SolidBrush s = new SolidBrush(Color.Red);//设置刷子颜色
  71.             g.DrawString(VNum, f, s, 3, 3);//将数字画到画板上去
  72.          
  73.         }
  74.         private void YZ()//这里是方法,可以添加在bottun事件中
  75.         {
  76.             Random rd = new Random();
  77.             string VNum = Convert.ToString(rd.Next(1000, 9999));//这里的VNUM可以设置为全局变量以便获取
  78.             Graphics g = label1.CreateGraphics();
  79.             g.Clear(Color.White);
  80.             // Pen p = new Pen(Color.Red);
  81.             Font f = new Font("Tahoma", 9);
  82.             SolidBrush s = new SolidBrush(Color.Red);
  83.             g.DrawString(VNum, f, s, 3, 3);
  84.         }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值