广

ASP.NET

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    asp.net 生成图片验证码

    2018-04-05 08:31:56 次阅读 稿源:互联网
    广告

      identifyingcode.aspx里没有内容略。
      identifyingcode.cs文件:
      using System;
      using System.Data;
      using System.Configuration;
      using System.Collections;
      using System.Web;
      using System.Web.Security;
      using System.Web.UI;
      using System.Web.UI.WebControls;
      using System.Web.UI.WebControls.WebParts;
      using System.Web.UI.HtmlControls;
      using System.Drawing;
      using System.Drawing.Imaging;
      using System.IO;
      public partial class identifyingcode : System.Web.UI.Page
      {
          protected void Page_Load(object sender, EventArgs e)
          {
              string tmp = RndNum(4);
              HttpCookie a = new HttpCookie("ImageV", tmp);
              Response.Cookies.Add(a);
              this.ValidateCode(tmp);

          }
          private void ValidateCode(string VNum)
          {
              Bitmap Img = null;
              Graphics g = null;
              MemoryStream ms = null;

              int gheight = VNum.Length * 12;
              Img = new Bitmap(gheight, 25);
              g = Graphics.FromImage(Img);
              //背景颜色
              g.Clear(Color.LightSteelBlue);
              //文字字体
              Font f = new Font("Arial Black", 10);
              //文字颜色
              SolidBrush s = new SolidBrush(Color.RoyalBlue);
              g.DrawString(VNum, f, s, 3, 3);
              ms = new MemoryStream();
              Img.Save(ms, ImageFormat.Jpeg);
              Response.ClearContent();
              Response.ContentType = "images/Jpeg";
              Response.BinaryWrite(ms.ToArray());
              g.Dispose();
              Img.Dispose();
              Response.End();
          }

          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,v,w,x,y,z";
              string[] VcArray = Vchar.Split(new Char[] { ',' });
              string VNum = "";
              int temp = -1;

              Random rand = new Random();

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

                  int t = rand.Next(35);
                  if (temp != -1 && temp == t)
                  {
                      return RndNum(VcodeNum);
                  }
                  temp = t;
                  VNum += VcArray[t];
              }
              return VNum;
          }

      }
       
      使用方法:
      在需要它的页面html里添加
       <img src="identifyingcode.aspx" />
       

        HttpCookieCollection cookies = Request.Cookies;
        string tmp = cookies["ImageV"].Value;
        然后比tmp与获取的较验证码文本框中的值是否相同
       
      出处:http://enuosky.cnblogs.com/archive/2006/05/15/400954.html

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告