PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了asp.net生成验证码代码(纯中文)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_5@using System; @H_404_5@using System.Data; @H_404_5@using System.Configuration; @H_404_5@using System.Web; @H_404_5@using System.Web.Security; @H_404_5@using System.Web.UI; @H_404_5@using System.Web.UI.WebControls; @H_404_5@using System.Web.UI.WebControls.WebParts; @H_404_5@using System.Web.UI.HtmlControls; @H_404_5@using System.Text; //添加引用 @H_404_5@using System.Drawing; //添加引用 @H_404_5@/// <sumMary> @H_404_5@/// checkCode_Ch 的@L_450_30@说明 @H_404_5@/// </sumMary> @H_404_5@public class checkCode_Ch @H_404_5@{ @H_404_5@public checkCode_Ch() @H_404_5@{ @H_404_5@// @H_404_5@// TODO: 在此处添加构造函数逻辑 @H_404_5@// @H_404_5@} @H_404_5@private static object[] CreateString() @H_404_5@{ @H_404_5@//定义一个数组存储汉字编码的组成元素 @H_404_5@String[] str = new String[16] { "0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f" }; @H_404_5@Random ran = new Random(); //定义一个随机数对象 @H_404_5@object[] bytes = new object[4]; @H_404_5@for (int i = 0; i < 4; i++) @H_404_5@{ @H_404_5@//获取区位码第一位 @H_404_5@int ran1 = ran.Next(11,14); @H_404_5@String str1 = str[ran1].Trim(); @H_404_5@//获取区位码第二位并防止数据重复 @H_404_5@ran = new Random(ran1 * unchecked((int)datetiR_556_11845@e.Now.Ticks) + i); @H_404_5@int ran2; @H_404_5@if (ran1 == 13) @H_404_5@{ @H_404_5@ran2 = ran.Next(0,7); @H_404_5@} @H_404_5@else @H_404_5@{ @H_404_5@ran2 = ran.Next(0,16); @H_404_5@} @H_404_5@String str2 = str[ran2].Trim(); @H_404_5@//获取区位码第三位 @H_404_5@ran = new Random(ran2 * unchecked((int)datetiR_556_11845@e.Now.Ticks) + i); @H_404_5@int ran3 = ran.Next(10,16); @H_404_5@String str3 = str[ran3].Trim(); @H_404_5@//获取区位码第四位 @H_404_5@ran = new Random(ran3 * unchecked((int)datetiR_556_11845@e.Now.Ticks) + i); @H_404_5@int ran4; @H_404_5@if (ran3 == 10) @H_404_5@{ @H_404_5@ran4 = ran.Next(1,16); @H_404_5@} @H_404_5@else if (ran3 == 15) @H_404_5@{ @H_404_5@ran4 = ran.Next(0,15); @H_404_5@} @H_404_5@else @H_404_5@{ @H_404_5@ran4 = ran.Next(0,16); @H_404_5@} @H_404_5@String str4 = str[ran4].Trim(); @H_404_5@//定义字节变量存储产生的随机汉字区位码 @H_404_5@byte byte1 = Convert.ToByte(str1 + str2,16); @H_404_5@byte byte2 = Convert.ToByte(str3 + str4,16); @H_404_5@byte[] sTradd = new byte[] { byte1,byte2 }; @H_404_5@//将产生的汉字字节放入数组 @H_404_5@bytes.SETVALue(sTradd,i); @H_404_5@} @H_404_5@return bytes; @H_404_5@} @H_404_5@private static String GetString() @H_404_5@{ @H_404_5@Encoding gb = Encoding.GetEncoding("gb2312"); @H_404_5@object[] bytes = CreateString(); @H_404_5@//根据汉字字节解码出中文汉字 @H_404_5@String str1 = gb.GetString((byte[])Convert.ChangeType(bytes[0],typeof(byte[]))); @H_404_5@String str2 = gb.GetString((byte[])Convert.ChangeType(bytes[1],typeof(byte[]))); @H_404_5@String str3 = gb.GetString((byte[])Convert.ChangeType(bytes[2],typeof(byte[]))); @H_404_5@String str4 = gb.GetString((byte[])Convert.ChangeType(bytes[3],typeof(byte[]))); @H_404_5@String str = str1 + str2 + str3 + str4; @H_404_5@httpContext.Current.Response.Cookies.Add(new httpCookie("checkCode",str)); @H_404_5@return str; @H_404_5@} @H_404_5@public static void GraphicsImage() @H_404_5@{ @H_404_5@System.Drawing.bitmap image = new System.Drawing.bitmap((int)R_556_11845@ath.Ceiling((GetString().Length * 22.5)),22); @H_404_5@Graphics g = Graphics.FromImage(imagE); //创建画布 @H_404_5@try @H_404_5@{ @H_404_5@//生成随机生成器 @H_404_5@Random random = new Random(); @H_404_5@//清空图片背景色 @H_404_5@g.Clear(Color.WhitE); @H_404_5@//画图片的背景噪音线 @H_404_5@for (int i = 0; i < 1; i++) @H_404_5@{ @H_404_5@int x1 = random.Next(image.Width); @H_404_5@int x2 = random.Next(image.Width); @H_404_5@int y1 = random.Next(image.Height); @H_404_5@int y2 = random.Next(image.Height); @H_404_5@g.DrawLine(new Pen(Color.black),x1,y1,x2,y2); @H_404_5@} @H_404_5@Font font = new System.Drawing.Font("Couriew New",12,System.Drawing.FontStyle.bold); @H_404_5@System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush @H_404_5@(new Rectangle(0,image.Width,image.Height),Color.blue,Color.DarkRed,1.2f,truE); @H_404_5@g.DrawString(GetString(),font,brush,2,2); @H_404_5@//画图片的前景噪音点 @H_404_5@for (int i = 0; i < 50; i++) @H_404_5@{ @H_404_5@int x = random.Next(image.Width); @H_404_5@int y = random.Next(image.Height); @H_404_5@image.SetPixel(x,y,Color.FromArgb(random.Next())); @H_404_5@} @H_404_5@//画图片的边框线 @H_404_5@g.DrawRectangle(new Pen(Color.Silver),image.Width - 1,image.Height - 1); @H_404_5@System.IO.MemoryStream ms = new System.IO.MemoryStream(); @H_404_5@image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif); @H_404_5@httpContext.Current.Response.ClearContent(); @H_404_5@httpContext.Current.Response.ContentType = "image/Gif"; @H_404_5@httpContext.Current.Response.binaryWrite(ms.ToArray()); @H_404_5@} @H_404_5@catch (Exception ms) @H_404_5@{ @H_404_5@httpContext.Current.Response.Write(ms.messagE); @H_404_5@} @H_404_5@} @H_404_5@} @H_404_5@
@H_404_5@第二步建立一个页面引用类库ChinesecheckCode.aspx前台不用写代码后台引用类库。。 @H_404_5@
@H_404_5@using System; @H_404_5@using System.Collections; @H_404_5@using System.Configuration; @H_404_5@using System.Data; @H_404_5@using System.Web; @H_404_5@using System.Web.Security; @H_404_5@using System.Web.UI; @H_404_5@using System.Web.UI.HtmlControls; @H_404_5@using System.Web.UI.WebControls; @H_404_5@using System.Web.UI.WebControls.WebParts; @H_404_5@public partial class UserValidator_ChinesecheckCode : System.Web.UI.Page @H_404_5@{ @H_404_5@protected void Page_Load(object sender,EventArgs E) @H_404_5@{ @H_404_5@checkCode_Ch.GraphicsImage(); //调用方法生成四位汉字验证码 @H_404_5@} @H_404_5@} @H_404_5@
@H_404_5@第三步引用验证码页 @H_404_5@
@H_404_5@<asp:Text@L_607_230@ ID="Validator" runat="server" Width="150px" ></asp:Text@L_607_230@> @H_404_5@<img id="Img1" alt="看不清,请点击我!" onclick="this.src=this.src+'?'" src="ChinesecheckCode.aspx" @H_404_5@style="width: 75px; height: 24px" align="left" /> @H_404_5@<asp:ImageButton ID="imgBtnLogin" runat="server" ImageUrl="~/Images/Login.GIF" @H_404_5@OnClick="imgBtnLogin_Click" /> @H_404_5@
@H_404_5@后台判断 @H_404_5@
@H_404_5@protected void imgBtnLogin_Click(object sender,ImageClickEventArgs E) @H_404_5@{ @H_404_5@httpCookie cookie = request.Cookies["checkCode"]; @H_404_5@if (cookie.Value == this.Validator.Text.Trim()) @H_404_5@{ @H_404_5@//。。。 @H_404_5@} @H_404_5@else @H_404_5@{ @H_404_5@Response.Write("<script>alert('验证码输入错误,请重新输入!');LOCATIOn='ChineseCodeValidator.aspx'</script>"); @H_404_5@return; @H_404_5@} @H_404_5@} @H_404_5@
@H_404_5@以上验证码生成四位,请各位根据 情况做适当修改。 @H_404_5@现在总结了生成纯数字、数字字母混合、纯汉字的验证码技术。希望对各位有所帮助。。

大佬总结

以上是大佬教程为你收集整理的asp.net生成验证码代码(纯中文)全部内容,希望文章能够帮你解决asp.net生成验证码代码(纯中文)所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:验证码