asp.net实现简单数字验证码实例
程序员文章站
2022-05-12 11:37:33
...
调用
验证码:<input type="text" id="txtValidate" style="border: solid 1px #9B9B9B; width: 85px; height: 17px;" /> <img src="Rnd.aspx" mce_src="Rnd.aspx" style="width: 58px; height: 17px; border: solid 1px #9B9B9B" align="absmiddle" />
后台实现
Rnd.aspx.cs
using System; using System.Collections; using System.Configuration; using System.Data; 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.Drawing; using System.Drawing.Imaging; public partial class Rnd : System.Web.UI.Page { private int codeLen = 5;//随机显示字符个数 private int fineness = 100;//图片清晰度 private int imgWidth = 65;//图片宽度 private int imgHeight = 20;//图片高度 private string fontFamily = "Roman";//字体名称 private int fontSize = 12; //字体大小 private Random random = new Random(); protected void Page_Load(object sender, EventArgs e) { string validateCode = CreateValidateCode(); Session["RandomNumber"] = validateCode; Bitmap bitmap = new Bitmap(imgWidth, imgHeight); DisturbBitmap(bitmap); DrawValidateCode(bitmap, validateCode); bitmap.Save(Response.OutputStream, ImageFormat.Gif); } private string CreateValidateCode()//得到随机数 { string validateCode = ""; for (int i = 0; i < codeLen; i++) { int n = random.Next(10);//返回一个小于最大值得随机数 validateCode += n.ToString(); } return validateCode; } private void DisturbBitmap(Bitmap bitmap)//获取背景图 { for (int i = 0; i < bitmap.Width; i++) { for (int j = 0; j < bitmap.Height; j++) { if (random.Next(90) <= this.fineness) { bitmap.SetPixel(i, j, Color.White);//获取指定位置的像素颜色 } } } } private void DrawValidateCode(Bitmap bitmap, string validateCode) { Graphics g = Graphics.FromImage(bitmap); Font font = new Font(fontFamily, fontSize, FontStyle.Bold); g.DrawString(validateCode, font, Brushes.Green, random.Next(-3, 11), random.Next(-4, 1));//在指定区域绘制文本字符 } }
以上就是asp.net实现简单数字验证码实例的详细内容,更多请关注其它相关文章!