宝哥软件园

ASP.NET为混合字母和数字生成验证码

编辑:宝哥软件园 来源:互联网 时间:2021-09-17

验证码技术是网站开发过程中的一项重要技术,可以防止不法分子利用注册机或登陆工具攻击我们的网站。以下是渲染:

具体实现方法如下:

1.主要思想是:参考使用系统。绘制命名空间,使用Graphics的FromImage方法创建一个画布,同时设置画布的宽度和高度,然后将Graphics类的drawl方法随机生成的字符串绘制到画布中,在绘制验证码的同时使用SetPixel方法在画布中绘制一些色点,防止不法分子利用机器人登录。当我们完成验证码的绘制后,我们使用Image空间将其显示在需要验证码的页面上。显示验证码的图像控件的HTML源代码设置如下:

ASP : image ID=' Image1 ' runat=' server ' imageurl=' ~/validateum . aspx '/ASP : link button ID=' link button 1 ' runat=' server ' style=' font-size : small;我看不清楚。更改为/asp:LinkButton2。这里使用的ValidateNum.aspx的页面代码如下:

使用系统;使用系统。收藏品;使用系统。配置;使用系统。数据;使用系统Linq .使用系统网络.使用系统。网络安全;使用系统网络。用户界面使用系统网络。UI。HtmlControls使用系统。网络控件;使用系统。网页组件;使用系统Xml。Linq使用系统。绘图;公共部分类ValidateNum :系统网络。用户界面。第{页受保护的无效页面_加载(对象发送者,事件参数e) { if(!IsPostBack){ string validate num=CreateRandomNum(4);//成生四位随机字符串创建图像(验证编号);//将生成的随机字符串绘成图片会话[' validate um ']=validate um;//保存验证码} } //生成随机字符串私有字符串CreateRandomNum(int NumCount){ string all char=' 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,W,X,Y,Z ';字符串[] allCharArray=allChar .拆分(',');//拆分成数组字符串randomNum=int temp=-1;//记录上次随机数的数值,尽量避免产生几个相同的随机数rand rand=new Random();for(int I=0;i NumCounti ) { if (temp!=-1){ rand=new Random(I * temp *(int)DateTime .现在。刻度));} int t=rand .接下来(35);if(temp==t){ return CreateRandomNum(NumCount);} temp=t;randomNum=all chararray[t];}返回randomNum} //生成图片私有void CreateImage(字符串validate num){ if(validate num==null | | validate num .Trim()==字符串.空)返回;//生成位图图像系统。绘图。位图图像=新系统。绘图。位图(有效。长度* 12 10,22);图形g=图形FromImage(图像);尝试{ //生成随机生成器Random Random=new Random();//清空图片背景色透明(颜色。白色);//画图片的背景噪音线for(int I=0;i 25i ) { int x1=random .下一张(图片。宽度);int x2=随机。下一张(图片。宽度);int y1=随机。下一张(图片。身高);int y2=随机。下一张(图片。身高);画线(新钢笔(颜色。银)、x1、y1、x2、y2);}字体字体=新系统。绘图。字体(' Arial ',12,(系统。绘图。字体样式。粗体|系统绘图。字体样式。斜体));系统。绘图。绘图2D .线性渐变画笔=新系统绘图。2d图纸。linegradientbrush(新矩形(0,0,图像。宽度,图像。高度)、颜色。蓝色,彩色暗红色,1.2f,真);g。拉绳(有效日期,字体,画笔,2,2);//画图片的前景噪音点for(int I=0;i 100i ) { int x=random .下一张(图片。宽度);int y=随机。下一张(图片。身高);图像。设置像素(x,y,颜色FromArgb(随机. next()));} //画图片的边框线画矩形(新钢笔(颜色。银色),0,0,图像。宽度- 1,图像。身高-1);系统。内存流=新系统IO。内存流();//将图像保存到指定的流图像。保存(毫秒,系统绘图。成像。imageformat。gif);回应ClearContent();回应内容类型=' image/Gif ';回应二进制写入(ms . to array());}最后{ g . Dispose();图像dispose();} }}以上就是关于ASP。网生成图形验证码的相关资料,希望对大家的学习有所帮助。

更多资讯
游戏推荐
更多+