您的位置: 连云港信息港 > 汽车

ASPNet实现验证码

发布时间:2019-11-05 05:52:24

http://www.aspx51.com/Programme/200709/10638702424902.html U]-$q(+=e9

using System.Drawing; C2/NTjc

using System.Drawing.Imaging; :'"]UGO

private void Page_Load(object sender, System.EventArgs e) xF{p|3

{ Vb9s^bu

// 在此处放置用户代码以初始化页面 fr5Xi ?3,O

//RndNum是一个自定义函数 :M[F m\@

string VNum=RndNum(4); //这里的数字4代表显示的是4位的验证字符串! M,{Iz;W

Session["VNum"]=VNum; r pH7Wo3

ValidateCode(VNum); B yH!&b@

} y^2fNz

//生成图像函数 rI6 {[kV

private void ValidateCode(string VNum) /Z:\$m/H

{ nq^ \"HG/

int Gheight=(int)(VNum.Length * 11.5); '!$WRSMN

//gheight为图片宽度,根据字符长度自动更改图片宽度 WW CWe@ 1

System.Drawing.Bitmap Img = new System.Drawing.Bitmap(Gheight,20); d/Gd6B.

Graphics g = Graphics.FromImage(Img); K0xNicp

g.DrawString(VNum,new System.Drawing.Font("Arial",10),new System.Drawing.SolidBrush(Color.Red),3,3); "0SG*sGC

//在矩形内绘制字串(字串,字体,画笔颜色,左上x.左上y) k%d7H8\K

System.IO.MemoryStream ms=new System.IO.MemoryStream(); ~~MRU#o

Img.Save(ms,System.Drawing.Imaging.ImageFormat.Png); bi%pjDM

Response.ClearContent(); //需要输出图象信息 要修改HTTP头 +<=>&IL{

Response.ContentType="image/Png"; YHd>s z$

Response.BinaryWrite(ms.ToArray()); ]: R$VsqD

g.Dispose(); Q{Dk0p [

Img.Dispose(); l5,}Q6!D

Response.End(); ]},w\W"

} \<o vsx

9OAw#`|7y`

//生成随机数函数中从Vchar数组中随机抽取 ML* leiY

//字母区分大小写 &)N!t*

public string RndNum(int VcodeNum) nq3q8

{ ~x@t4_d#

string Vchar = "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" ; 9gQ4?Vd68

%Hgk%)I

string[] VcArray = Vchar.Split(',') ; k@2AGN]

string VNum = "" ;//由于字符串很短,就不用StringBuilder了 iq5ZJqjAE

int temp = -1 ;//记录上次随机数值,尽量避免生产几个一样的随机数 -5lG%fdi

8W? w O2

//采用一个简单的算法以保证生成随机数的不同 z9d\ F=

Random rand =new Random(); *^@ \

for ( int i = 1 ; i < VcodeNum+1 ; i++ ) d3Nyn|F

{ x3b>:Z} n

if ( temp != -1) '2}xVCN \

{ zgy&\K

rand =new Random(i*temp*unchecked((int)DateTime.Now.Ticks)); s}i+,H/

} Vm_?U@7E

//int t = rand.Next(35) ; 8c3A@PCfea

int t=rand.Next(35); KweQa_>0

if (temp != -1 && temp == t) Uz&vU3u

{ PE%9~CO

return RndNum( VcodeNum ); K+Y3l

} %2F c

temp = t ; ^7\vu M[

VNum += VcArray[t]; S@GFmk>Za@

^R\a1>

} DZh\rTT ra

return VNum ; EL:\9  

} NwX 7N

-----------------------------------end-------------------------------------------- aLx0s {

7ze`^uMs(

下面是Login.Aspx在在调用提交按钮的响应事件中 +] uks/2-

{i@$I(@h#=

private void Page_Load(object sender, System.EventArgs e) %0N4J 7}x

{ _6po3i1IK

if(!Page.IsPostBack ) jTy6N#>7 a

{ i-h*3ob. /

Session.Clear(); ea,A H#

} :}]?P5\Xxv

} g9%7PuNV

qaa[g<|9H

public void doit(object sender, System.EventArgs e) Q*,9 v+^

{ cjt*/}b7

if(Page.IsValid) 0ZOae1v

{ A~70|Fz

5(Q;S-pfX

string VNum; koS_- `P#

VNum=Session["VNum"].ToString(); |69}!1^t

ViewState["VNum"]=VNum; -G0cj;Va

if(this.Vcode.Text==ViewState["VNum"].ToString()) nhXkHc

{ BYW z$P 

)/`KI\

Hover.Manage.CheckLogin obj=new Hover.Manage.CheckLogin(); ?_0r({=}m

string name=username.Text; wCC6R`z

string password=FormsAuthentication.HashPasswordForStoringInConfigFile(pass.Text.ToString(),"md5"); >!Osjz ~r

if(!obj.checklogin(name,password)) -g|5=t BH

{ `!,fN6/_

Response.Redirect("../Error.aspx?action=Errorlogin"); [> Hz5k

Response.End(); y&pE(:

return; XHZPGkW4)

} vHpZ $DOs

else $7F KjJ

{ KA!0,Wv?

Session.Add("adminname",name); xVKX @LV

Session.Add("adminpass",password); ,b0,[k

Response.Redirect("Default.aspx"); \z^P;

Response.End(); ANrcfJ5

return; "ZQ&9IaK

} \Qy%jfm:

5bC },nxA

} 4*<P[ \

else 'PV;JsQ\h

{ jup*4ZP `_

Response.Write("<script>alert(\"请输入正确的附加码!\");</script>"); ctkSZt

} 7M #!<

} !hcv%aQTz

} i/\8(T=Ff

如果提交过来的验证字符串正确就验证是否是合法用户! y19>Ck|"i

否则弹出提示返回登陆页!你也可以简化此页! z#3&#vL

if(this.Vcode.Text==ViewState["VNum"].ToString()) lP}'8| |

{ rb#Pp/Lp

Response.Write("验证码正确"); )\[$S"f]

} IM% "

else $}3/<(N\G

{ <EJ\U&te

Response.Write("验证码错误!"); ,49!k&8

} dOKb-Z 查看本文来源

出生不久即出现惊厥,贫血,休克,警惕甲基丙二酸血症!
牛皮癣患者应该谨慎使用控制性药物
视频三、本期话题:误区:老人没必要种牙?
济南名韩植发医院葛淑静
济南艾玛妇产医院专家
猜你会喜欢的
猜你会喜欢的