请在.net里怎么写验证码 20分 谢谢帮解答下吧

问题描述

请在.net里怎么写验证码我想在登入页面加上验证码怎么写给个源码吧我的20分谢谢帮解答下吧

解决方案

解决方案二:
额~~~代码我有,但我也不是完全理解,在上面我写了简单的注释,只能简单的讲解!!publicpartialclassCode:System.Web.UI.Page{string_str_code="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";int_int_length=4;protectedvoidPage_Load(objectsender,EventArgse){stringstr_code=code_view();Session["code"]=str_code;view_img(str_code);}///<summary>///生成验证码的随机数///</summary>///<returns></returns>privatestringcode_view(){stringreturn_str="";string[]str_arr=_str_code.Split(newchar[]{','});Randomr=newRandom(unchecked((int)DateTime.Now.Ticks));//让产生的随机数不重复//产生随机数intint_start=-1;for(inti=0;i<_int_length;i++){int_start=r.Next(0,str_arr.Length-1);return_str+=str_arr[int_start];}returnreturn_str;}///<summary>///用GDI+将随机数绘制到背景图片上///</summary>///<paramname="str_code"></param>privatevoidview_img(stringstr_code){Bitmapimg1=newBitmap(70,30);//用位图定位图片的大小//绘制验证码Graphicsps=Graphics.FromImage(img1);ps.Clear(Color.White);Fontft=newFont("Arial",14,FontStyle.Bold);LinearGradientBrushbrush=newLinearGradientBrush(newRectangle(0,0,img1.Width,img1.Height),Color.Blue,Color.DarkOrange,1.2f);System.Drawing.Imageimg2=System.Drawing.Image.FromFile(Server.MapPath("~")+@"BackImage.gif");ps.DrawImage(img2,newRectangle(0,0,img1.Width,img1.Height));ps.DrawString(str_code,ft,brush,2,2);ps.DrawRectangle(newPen(Color.Silver),newRectangle(0,0,img1.Width-1,img1.Height-1));//将编辑好的验证码保存到内存中MemoryStreamms=newMemoryStream();img1.Save(ms,ImageFormat.Gif);//将内存中的验证码输出到页面Response.ClearContent();Response.ContentType="image/Gif";Response.BinaryWrite(ms.ToArray());ms.Dispose();ps.Dispose();}}
解决方案三:
网上有验证控件可以下载的。用起来很简单又很美观。
解决方案四:
冒泡google
解决方案五:
xiexie我在研究下
解决方案六:
我写过一个简单的,代码忘存哪了。就是自定义个空件,我是继承的panel,然后随机生成你想要随机码,然后画到panel里,如果想有点背景,你再处理下。
解决方案七:
请参考一下:http://www.cnblogs.com/liudao/archive/2007/04/29/732065.html
解决方案八:
在google中搜..很多很多
解决方案九:
网上有很多直接找我给帖一段参考下usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Drawing;usingSystem.Drawing.Drawing2D;publicpartialclassValidateCode:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){BitmapnewBitmap=newBitmap(75,27,System.Drawing.Imaging.PixelFormat.Format32bppArgb);Graphicsg=Graphics.FromImage(newBitmap);Randomr=newRandom();g.Clear(Color.White);Colorc1=Color.FromArgb(64,184,6);System.Drawing.Drawing2D.LinearGradientBrushbrush=newSystem.Drawing.Drawing2D.LinearGradientBrush(newRectangle(0,10,75,27),c1,c1,0.0f,true);//for(inti=0;i<25;i++)//{//intx1=r.Next(newBitmap.Width);//intx2=r.Next(newBitmap.Width);//inty1=r.Next(newBitmap.Height);//inty2=r.Next(newBitmap.Height);//g.DrawLine(newPen(Color.Silver),x1,y1,x2,y2);//}//for(inti=0;i<100;i++)//{//intx=r.Next(newBitmap.Width);//inty=r.Next(newBitmap.Height);//newBitmap.SetPixel(x,y,Color.FromArgb(r.Next()));//}Colorc=Color.FromArgb(234,234,234);g.FillRectangle(newSolidBrush(c),0,0,75,27);stringvalue=GenerateRandom(4);Fontfont=newFont("Arial",18,System.Drawing.FontStyle.Regular);g.DrawString(value,font,brush,0,0);g.DrawRectangle(newPen(Color.White),0,0,75,27);//g.FillRectangle(newSolidBrush(Color.Gray),0,12,80,1);System.IO.MemoryStreamms=newSystem.IO.MemoryStream();newBitmap.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);Response.ClearContent();Response.ContentType="image/gif";Response.BinaryWrite(ms.ToArray());Session["validatecode"]=value;}privatestaticchar[]constant={'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','Z','X','Y','Z',};publicstaticstringGenerateRandom(intLength){System.Text.StringBuildernewRandom=newSystem.Text.StringBuilder(36);Randomrd=newRandom();for(inti=0;i<Length;i++){newRandom.Append(constant[rd.Next(36)]);}returnnewRandom.ToString();}}

时间: 2024-11-05 14:56:28

请在.net里怎么写验证码 20分 谢谢帮解答下吧的相关文章

Android拆轮子系列之写验证码控件的方法_Android

前言 先看看效果 怎么样不错吧?别急下面我就一步一步的教你实现. 用到的知识点总结: 1.Canvas和pint的使用,我们用它画点,线,字 2.View的基本用法 其实做这个东西还是很简单的,总体思路步骤如下: 1.准备一个Canvas. 2.向Canvas里面画几条斜杠. 3.向canvas里面画100个小点. 4.随机生成4个数字,然后画在canvas里面. 其实就是这么简单,没什么深奥的. 开始写编码 1.首先我们要重写View 既然我们要画验证码,那么我们就需要准备画笔(paint)和

Android拆轮子系列之写验证码控件的方法

前言 先看看效果 怎么样不错吧?别急下面我就一步一步的教你实现. 用到的知识点总结: 1.Canvas和pint的使用,我们用它画点,线,字 2.View的基本用法 其实做这个东西还是很简单的,总体思路步骤如下: 1.准备一个Canvas. 2.向Canvas里面画几条斜杠. 3.向canvas里面画100个小点. 4.随机生成4个数字,然后画在canvas里面. 其实就是这么简单,没什么深奥的. 开始写编码 1.首先我们要重写View 既然我们要画验证码,那么我们就需要准备画笔(paint)和

服务器-mime类型,传输图片时content-type里怎么写

问题描述 mime类型,传输图片时content-type里怎么写 自己用java编写的服务器端程序 传输html文件content-type这样写: out.println(""Content-Type: text/html; charset=GB2312""); 百度说传输jpg格式这样写: out.println(""Content-Type: image/jpeg; charset=GB2312""); 可是我试了为什

delphi线程问题 delphi 程序里我写了一个方法

问题描述 delphi线程问题 delphi 程序里我写了一个方法 delphi 程序里我写了一个方法,方法里面的算法比较复杂,计算起来时间比较长,我想把这个方法单独放到一个线程里去执行,请问是怎么写?一点头绪没有啊,谢谢 解决方案 unit Unit1; interface uses Windows Messages SysUtils Variants Classes Graphics Controls Forms Dialogs StdCtrls; type TForm1 = class(T

请看一个大神写的lambda表达式,不用linq请问怎么调用

问题描述 请看一个大神写的lambda表达式,不用linq请问怎么调用 Func<int, bool> MyAnd(Func<int, bool> f1, Func<int, bool> f2) { return x => f1(x) && f2(x); } 解决方案 直接调用也可以: bool b1 = MyAnd(x => x < 10, x => x % 2 == 0)(4); bool b2 = MyAnd(x =>

代码-求大神告诉下,action=&amp;amp;quot;Add&amp;amp;quot;写在form里和写在 submit里有什么区别吗?

问题描述 求大神告诉下,action="Add"写在form里和写在 submit里有什么区别吗? 求大神告诉下,action="Add"写在form里和写在 submit里有什么区别吗?submit里的name不写可以吗?为什么?最后div...div里的class和另外三个都是什么意思?求求大神可怜可怜我这个新手吧,详细告知下 <s:form action="Add" id="form1" theme="s

winform-新手求指教 Winform Entity Framework 我在每个窗体里这么写合适吗?

问题描述 新手求指教 Winform Entity Framework 我在每个窗体里这么写合适吗? 和MVC的写法一样 namespace TestWinForm.ViewForms.ViewAll { public partial class ViewPlansForm : Form { TestEntities db = new TestEntities(); public ViewPlansForm() { InitializeComponent(); } private void ba

php-JS表单里怎样写唯一标示符,求指导,谢谢!

问题描述 JS表单里怎样写唯一标示符,求指导,谢谢! layer += '<div class="layer_title"><h1>注册</h1><a href="javascript:;" title="关闭">x</a></div>'; layer += '<form action="register.php" method="POST

asp net 三层-.net在DAL里Sql写了查询语句,后台button怎样把它显示出来

问题描述 .net在DAL里Sql写了查询语句,后台button怎样把它显示出来 需要三层架构,想做图书检索,显示出查到的图书后,点击显示的书后可购买 解决方案 单击button事件,button_click函数里写上调用DAL.显示在某控件的代码 解决方案二: 如果用gridvie,调用DAL,获得结果.作为gridview的新的数据源,再重新绑定.不就是查询后,重新刷新显示.