关闭

ASP .NET登录界面用户验证码代码

标签: .netaspstringrandomobject算法
10322人阅读 评论(2) 收藏 举报
分类:

//ASP .NET用户登录界面经常用到验证码代码如下

private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   Label4.Text=RandomNum(4);
  }
  public string RandomNum(int n) //
  {
   string strchar = "0,1,2,3,4,5,6,7,8,9" ;
   string[] VcArray = strchar.Split(',') ;
   string  VNum = "" ;
   //由于字符串很短,就不用StringBuilder了
   int temp = -1 ;   
   //记录上次随机数值,尽量避免产生几个一样的随机数
   //采用一个简单的算法以保证生成随机数的不同
   Random rand =new Random();
   for ( int i = 1 ; i < n+1 ; i++ )
   {   
    if ( temp != -1)
    {
     rand =new Random(i*temp*unchecked((int)

      DateTime.Now.Ticks));
    }   
    //int t =  rand.Next(35) ;
    int t=rand.Next(10);
    if (temp != -1 && temp == t)
    {
     return RndNum( n);
    }
    temp = t  ;
    VNum += VcArray[t];
   }
   return VNum ;//返回生成的随机数
  }
  // ''函数名称:RndNum
  // ''函数参数:VCodeNum--设定返回随机字符串的位数
  // ''函数功能:产生数字和字符混合的随机字符串
  private string RndNum(int VcodeNum)
  {
   string Vchar = "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,W,X,Y,Z" ;
   string[] VcArray = Vchar.Split(",".ToCharArray()); //将字符串生成数组
   string VNum = "";
   int i;
   for(i=1;i<VcodeNum;i++)
   {
    System.Random ro = new Random();
    double decA = ro.NextDouble();
    VNum = VNum + VcArray[Convert.ToInt32(35*decA)];
   }
   // For i=1 to VcodeNum
   // Randomize
   // VNum=VNum & VcArray(Int(35*Rnd)) ''数组一般从0开始读取,所以这里为35*Rnd
   // Next
   return VNum;
  }

//ASP .NET登录界面用户验证码代码,网络上搜集整理测试
//http://www.weste.net/2006/2-24/14492415770.html
//http://www.webdn.com/web_file/program/asp.net/0602080581/

 

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1212767次
    • 积分:15248
    • 等级:
    • 排名:第777名
    • 原创:294篇
    • 转载:60篇
    • 译文:2篇
    • 评论:188条
    文章存档
    最新评论
    C#+Jquery
    C#+Jquery