当前位置: 代码迷 >> ASP.NET >> 验证码内容的生成,该怎么处理
  详细解决方案

验证码内容的生成,该怎么处理

热度:5947   发布时间:2013-02-25 00:00:00.0
验证码内容的生成
string str = "";
  for (int i = 0; i <= 4; i++)
  {
  char num = 'a';
  Random rd = new Random();
  int temp = rd.Next(26);
  num =Convert.ToChar(Convert.ToInt32(num) + temp);
  str = str + num;
  }
  Console.WriteLine(str);
  Console.ReadKey();
设置断点逐步调试的时候就能得到5个不同的字母;
直接显示最后结果就全都一样
求指点。

------解决方案--------------------------------------------------------
C# code
string chkCode = string.Empty;char[] character = { '2', '3', '4', '5', '6', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'W', 'X', 'Y' };            Random rnd = new Random();            //生成验证码字符串             for (int i = 0; i < 4; i++)            {                chkCode += character[rnd.Next(character.Length)];            }
------解决方案--------------------------------------------------------
context.Response.ContentType = "image/JPEG";
using (System.Drawing.Bitmap bitmap= new System.Drawing.Bitmap(100, 50))
{
using(System.Drawing.Graphics g=System.Drawing.Graphics.FromImage(bitmap))
{
/* g.DrawString("如鹏网",new System.Drawing.Font("宋体",20),System.Drawing.Brushes.Blue,new System.Drawing.Point(0,0));
System.Drawing.Pen pen = (System.Drawing.Pen)System.Drawing.Pens.Red.Clone();
pen.Width = 3;
g.DrawEllipse(pen,new System.Drawing.Rectangle(10,10,10,10));
bitmap.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);*/
Random rand = new Random();
int code = rand.Next(100,200);
string strCode = code.ToString();
HttpContext.Current.Session["Code"] = strCode;
g.DrawString(strCode,new System.Drawing.Font("宋体",12),System.Drawing.Brushes.Blue,new System.Drawing.PointF(0,0));
bitmap.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
很不错的例子
  相关解决方案