ASP.NET验证码

ASP.NET验证码,第1张

概述ASP.NET验证码

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

在ASP页面中生成图片验证码,需要用到System.Drawing命名空间下的很多类,首先我们需要新建一个CreateImage.aspx页面,在后台代码中定义用于生成验证码图片的方法,如下:using System;using System.Collections;using System.Configuration;using System.Data;using System.linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HTMLControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.XML.linq;using System.Drawing;public partial class CreateImage : System.Web.UI.Page{protected voID Page_Load(object sender,EventArgs e){//产生4位验证码string CheckCode = CreateCode(4);//用于验证Session["code"] = CheckCode;CreateImages(CheckCode);}/// <summary>/// 产生验证码/// </summary>/// <param name="codeLength"></param>/// <returns></returns>public string CreateCode(int codeLength){string so = "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[] strArray = so.Split(',');string code = "";Random rand = new Random();for (int i = 0; i < codeLength; i++){//Random.Next(minValue,maxValue);//一个大于或等于 minValue 且小于 maxValue 的 32 位带符号整数,即:返回的值范围包括 minValue 但不包括 maxValue。如果//minValue 等于 maxValue,则返回 minValue。code += strArray[rand.Next(0,strArray.Length)];}return code;}/// <summary>/// 产生验证图片/// </summary>/// <param name="code"></param>public voID CreateImages(string code){//创建一个Bitmap新实例Bitmap image = new Bitmap(60,20);Graphics g = Graphics.FromImage(image);WebcolorConverter ww = new WebcolorConverter();//清楚整个绘图面,并以制定颜色填充g.Clear((color)ww.ConvertFromString("#FAE264"));Random rand = new Random();//画图片的背景噪音线for (int i = 0; i < 12; i++){int x1 = rand.Next(image.WIDth);int x2 = rand.Next(image.Height);int y1 = rand.Next(image.WIDth);int y2 = rand.Next(image.Height);g.Drawline(new Pen(color.lightGray),x1,y1,x2,y2);}//新建字体Font Font = new Font("Arial",15,FontStyle.Bold | FontStyle.Italic);System.Drawing.drawing2d.linearGradIEntBrush brush = new System.Drawing.drawing2d.linearGradIEntBrush(new Rectangle(0,image.WIDth,image.Height),color.Blue,color.Gray,1.2f,true);g.DrawString(code,Font,brush,0);//画图片的前景噪音for (int i = 0; i < 10; i++){int x = rand.Next(image.WIDth);int y = rand.Next(image.Height);image.SetPixel(x,color.White);}//画图片的边框线g.DrawRectangle(new Pen(color.Silver),image.WIDth - 1,image.Height - 1);System.IO.MemoryStream ms = new System.IO.MemoryStream();image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);Response.ClearContent();Response.ContentType = "image/Gif";Response.BinaryWrite(ms.ToArray());g.dispose();image.dispose();}#region Web 窗体设计器生成的代码overrIDe protected voID OnInit(EventArgs e){//// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}/// <summary>/// 设计器支持所需的方法 - 不要使用代码编辑器修改/// 此方法的内容。/// </summary>private voID InitializeComponent(){this.Load += new System.EventHandler(this.Page_Load);}#endregion}以上是CreateImage.aspx文件的后台代码,完成上述方法后,在页面里调用方法,只需要添加<img src="CreateImage.aspx" align="mIDdle" />,即可显示生成的验证码图片,每次刷新都会随机产生不同的验证码,如下:<%@ Page Language="C#" autoEventWireup="true" Codefile="CreateImage.aspx.cs" inherits="CreateImage" %><!DOCTYPE HTML PUBliC "-//W3C//DTD xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-Transitional.dtd"><HTML xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><Title>CheckImage</Title></head><body><form ID="form1" runat="server"><div><img src="CreateImage.aspx" align="mIDdle" /></div></form></body></HTML>

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的ASP.NET验证码全部内容,希望文章能够帮你解决ASP.NET验证码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1274813.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存