打印本文 打印本文 关闭窗口 关闭窗口
Asp.net 实现验证码功能的Web控件
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1882  更新时间:2009/4/23 10:43:14  文章录入:mintao  责任编辑:mintao
(120,30), Color.FromArgb(0,0,0,0),Color.FromArgb(255,255,255,255)),0,0,120,30);
   switch(pChartType)
   {
    case GraphicType.Jpg:
    
     validateImage.Save(pAuthenImageFullname, ImageFormat.Jpeg);
     break;
 
    case GraphicType.Gif:

     validateImage.Save(pAuthenImageFullname, ImageFormat.Gif);
     break;

    case GraphicType.Png:

     validateImage.Save(pAuthenImageFullname, ImageFormat.Png);
     break;
 
    case GraphicType.Bmp:

     validateImage.Save(pAuthenImageFullname, ImageFormat.Bmp);
     break;
 
    default:
     validateImage.Save(pAuthenImageFullname, ImageFormat.Jpeg);
     break;
   
   }
       
   validateImage.Dispose();

   g.Dispose();
   
   
  
  }

  /// <summary>
  /// 动态从数字和字母组成的元素中动态选择生成校验码
  /// </summary>
  private string GetValidateCode()
  {
   char[] s = new char[]{''''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'''',''''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 num = "";
   Random r = new Random();

   //根据用户需要的长度来定义验证码的位数
   for(int i = 0; i < CodeLength; i++)
   {
    num += s[r.Next(0, s.Length)].ToString();
   }
   
   return num;
  }

  /// <summary>
  /// 清除时间超过20秒的临时图片记录
  /// </summary>
  /// <returns>成功返回true,失败返回false</returns>
  public bool EraseOldGraphic()
  {

   try
   {
    DirectoryInfo Dinfo=new DirectoryInfo(this.Page.MapPath(pTempImageURLPath));
    FileInfo[] FileSet;
 
    if(Dinfo.Exists)
    {    
     switch(pChartType)
     {
      case GraphicType.Jpg:
    
       FileSet=Dinfo.GetFiles("*.jpg");
       break;
 
      case GraphicType.Gif:

       FileSet=Dinfo.GetFiles("*.gif");
       break;

      case GraphicType.Png:

       FileSet=Dinfo.GetFiles("*.png");
       break;
 
      case GraphicType.Bmp:

       FileSet=Dinfo.GetFiles("*.bmp");
       break;
 
      default:
       FileSet=Dinfo.GetFiles("*.jpg");
       break;
   
     }

     foreach(FileInfo fileInfo in FileSet)
     {
      if(fileInfo.Exists)
      {
       DateTime dts=DateTime.Now;
       DateTime dtc=fileInfo.CreationTime;

       TimeSpan ts=dts-dtc;
 
       if(ts.Seconds>20)
       {        
        fileInfo.Delete();
       }
      }
     }
    }

    return true;
   }
   catch(IOException ioe)
   {
       return false;
   }
  }
  
 }
}

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口