您现在的位置: 华盟网 >> 编程 >> asp编程 >> 正文

ASP.NET验证码(.aspx)

2011/10/24 作者:不详 来源: 华盟收集
导读 using System;using System.Collections.Generic;using System.Linq;using System.Web…

  using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Drawing;using System.Drawing.Drawing2D; //引用的命名控件public partial class ValidCodeImage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e)

  { CreateCheckCodeImage(GenCode(4));} /// <summary> /// '产生随机字符串/// </summary> /// <param name="num">随机出几个字符</param> /// <returns>随机出的字符串</returns> private string GenCode(int num)

  { string str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWSYZ";char[] chastr = str.ToCharArray();// string[] source ={ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "#", "$", "%", "&", "@" };string code = "";Random rd = new Random();int i;for (i = 0; i < num; i++)

  { //code += source[rd.Next(0, source.Length)];code += str.Substring(rd.Next(0, str.Length), 1);} return code;} /// <summary> /// 生成图片(增加背景噪音线、前景噪音点)

  /// </summary> /// <param name="checkCode">随机出字符串</param> private void CreateCheckCodeImage(string checkCode)

  { if (checkCode.Trim() == "" || checkCode == null)

  return;Session["Code"] = checkCode; //将字符串保存到Session中,以便需要时进行验证System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)(checkCode.Length * 13), 22);Graphics g = Graphics.FromImage(image);try { //生成随机生成器Random random = new Random();//清空图片背景色g.Clear(Color.White);// 画图片的背景噪音线int i;for (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.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);//画图片的前景噪音点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);Response.ClearContent();Response.ContentType = "image/Gif";Response.BinaryWrite(ms.ToArray());} catch { g.Dispose();image.Dispose();}

                  微信群名称:华盟黑白之道二群   华盟-黑白之道⑦QQ群: 9430885

  • 上一篇编程:

  • 下一篇编程:
  • 网友评论
      验证码
     

    关注

    分享

    0

    讨论

    2

    猜你喜欢

    论坛最新贴