• 生成验证码的一段源代码


    在页面中生成验证码的代码:

    private void Page_Load(object sender, System.EventArgs e)
      {
       
    string checkCode = GetRandomCode(4);
       Session[
    "CheckCode"= checkCode;
       SetPageNoCache();
       CreateImage(checkCode);
      }

      
    /// <summary>
      
    /// 设置页面不被缓存
      
    /// </summary>
      private void SetPageNoCache()
      {
       Response.Buffer 
    = true;
       Response.ExpiresAbsolute 
    = System.DateTime.Now.AddSeconds(-1);
       Response.Expires 
    = 0;
       Response.CacheControl 
    = "no-cache";
       Response.AppendHeader(
    "Pragma","No-Cache");
      }



    private string GetRandomCode(int CodeCount) 
      {
                
    string allChar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,i,J,K,M,N,P,Q,R,S,T,U,W,X,Y,Z";
       
    string[] allCharArray = allChar.Split(','); 
       
    string RandomCode = ""
       
    int temp = -1

       Random rand 
    = new Random(); 
       
    for (int i=0;i<CodeCount;i++
       { 
        
    if (temp != -1
        { 
         rand 
    = new Random(temp*i*((int) DateTime.Now.Ticks)); 
        } 

        
    int t = rand.Next(33); 

        
    while (temp == t) 
        { 
         t 
    = rand.Next(33); 
        } 
      
        temp 
    = t; 
        RandomCode 
    += allCharArray[t]; 
       } 

       
    return RandomCode; 
      }
      
    private void CreateImage(string checkCode)
      {
       
    int iwidth = (int)(checkCode.Length * 14);
       System.Drawing.Bitmap image 
    = new System.Drawing.Bitmap(iwidth, 20);
       Graphics g 
    = Graphics.FromImage(image);
       Font f 
    = new System.Drawing.Font("Arial "10);//, System.Drawing.FontStyle.Bold);
       Brush b = new System.Drawing.SolidBrush(Color.Black);
                Brush r 
    = new System.Drawing.SolidBrush(Color.FromArgb(166,8,8));
       
       
    //g.FillRectangle(new System.Drawing.SolidBrush(Color.Blue),0,0,image.Width, image.Height);
    //   g.Clear(Color.AliceBlue);//背景色
       g.Clear(System.Drawing.ColorTranslator.FromHtml("#99C1CB"));//背景色

                
    char[] ch = checkCode.ToCharArray();
                
    for (int i = 0; i < ch.Length; i++ )
                {
                    
    if(ch[i] >= '0' && ch[i] <= '9')
                    {
                        
    //数字用红色显示
                        g.DrawString(ch[i].ToString(), f, r, 3 + (i * 12),3);
                    }
                    
    else
                    {   
    //字母用黑色显示
                        g.DrawString(ch[i].ToString(), f, b, 3 + (i * 12),3);
                    }
                }            
       System.IO.MemoryStream ms 
    = new System.IO.MemoryStream();
       image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
       
    //history back 不重复 
       Response.Cache.SetNoStore();//这一句   
       Response.ClearContent();
       Response.ContentType 
    = "image/Jpeg";
       Response.BinaryWrite(ms.ToArray());
       g.Dispose();
       image.Dispose();
      }

    调用的时候设置imageurl='...aspx'就可以了。

  • 相关阅读:
    jxl导入/导出excel
    iText导出pdf、word、图片
    Java CSV操作(导出和导入)
    Spring3.0+Hibernate+Atomikos集成构建JTA的分布式事务--解决多数据源跨库事务
    jQuery插件:跨浏览器复制jQuery-zclip
    微信小程序之表单提交
    微信小程序只之全局存储
    微信小程序之工具js封装与使用
    重构的艺术 深入认识
    重构的素养
  • 原文地址:https://www.cnblogs.com/Hard/p/1398061.html
Copyright © 2020-2023  润新知