zoukankan      html  css  js  c++  java
  • ASP.net 验证码(C#)

    public class ValidateCode : System.Web.UI.Page
      
    2 {
      
    3  private void Page_Load(object sender, System.EventArgs e)
      
    4  {
      
    5   this.CreateCheckCodeImage(GenerateCheckCode());
      
    6  }

      
    7
      
    8  web 窗体设计器生成的代码#region web 窗体设计器生成的代码
      
    9  override protected void OnInit(EventArgs e)
     
    10  {
     
    11   //
     12   // CODEGEN: 该调用是 asp.NET web 窗体设计器所必需的。
     13   //
     14   InitializeComponent();
     
    15   base.OnInit(e);
     
    16  }

     
    17  
     
    18  /**//// <summary>
     19  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
     20  /// 此方法的内容。
     21  /// </summary>
     22  private void InitializeComponent()
     
    23  {    
     
    24   this.Load += new System.EventHandler(this.Page_Load);
     
    25  }

     
    26  #endregion

     
    27
     
    28  private string GenerateCheckCode()
     
    29  {
     
    30   int number;
     
    31   char code;
     
    32   string checkCode = String.Empty;
     
    33
     
    34   System.Random random = new Random();
     
    35
     
    36   for(int i=0; i<5; i++)
     
    37   {
     
    38    number = random.Next();
     
    39
     
    40    if(number % 2 == 0)
     
    41     code = (char)('0' + (char)(number % 10));
     
    42    else
     
    43     code = (char)('A' + (char)(number % 26));
     
    44
     
    45    checkCode += code.ToString();
     
    46   }

     
    47
     
    48   Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));
     
    49
     
    50   return checkCode;
     
    51  }

     
    52
     
    53  private void CreateCheckCodeImage(string checkCode)
     
    54  {
     
    55   if(checkCode == null || checkCode.Trim() == String.Empty)
     
    56    return;
     
    57
     
    58   System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
     
    59   Graphics g = Graphics.FromImage(image);
     
    60
     
    61   try
     
    62   {
     
    63    //生成随机生成器
     64    Random random = new Random();
     
    65
     
    66    //清空图片背景色
     67    g.Clear(Color.White);
     
    68
     
    69    //画图片的背景噪音线
     70    for(int i=0; i<25; i++)
     
    71    {
     
    72     int x1 = random.Next(image.Width);
     
    73     int x2 = random.Next(image.Width);
     
    74     int y1 = random.Next(image.Height);
     
    75     int y2 = random.Next(image.Height);
     
    76
     
    77     g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
     
    78    }

     
    79
     
    80    Font font = new System.Drawing.Font("Arial"12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
     
    81    System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(00, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2ftrue);
     
    82    g.DrawString(checkCode, font, brush, 22);
     
    83
     
    84    //画图片的前景噪音点
     85    for(int i=0; i<100; i++)
     
    86    {
     
    87     int x = random.Next(image.Width);
     
    88     int y = random.Next(image.Height);
     
    89
     
    90     image.SetPixel(x, y, Color.FromArgb(random.Next()));
     
    91    }

     
    92
     
    93    //画图片的边框线
     94    g.DrawRectangle(new Pen(Color.Silver), 00, image.Width - 1, image.Height - 1);
     
    95
     
    96    System.IO.MemoryStream ms = new System.IO.MemoryStream();
     
    97    image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
     
    98    Response.ClearContent();
     
    99    Response.ContentType = "image/Gif";
    100    Response.BinaryWrite(ms.ToArray());
    101   }

    102   finally
    103   {
    104    g.Dispose();
    105    image.Dispose();
    106   }

    107  }
  • 相关阅读:
    [转]asp.net页面缓存技术
    UL和LI在div中的高度的IE6下兼容性
    jquery制作的横向图片滚动带横向滚动条TackerScroll
    电脑可以上网,但是qq登陆不上去?
    Introduction to discrete event system学习笔记4.6
    Introduction to Discrete event system学习笔记4.9
    Introduction to discrete event systemsstudy 4.5
    Symbolic synthesis of obserability requirements for diagnosability B.Bittner,M.Bozzano,A.Cimatti,and X.Olive笔记4.16
    Introduction to discrete event system学习笔记4.8pm
    Introduction to discrete event system学习笔记 4.8
  • 原文地址:https://www.cnblogs.com/studio313/p/219469.html
Copyright © 2011-2022 走看看