实现验证码呢
2021-08-24 淮安装修公司
U]-$q(+=e9
using awing; C2/NTjc
using aging; :\'\"]UGO
private void Page_Load(object sender, entArgs 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)(ngth * 11.5); \'!$WRSMN
//gheight为图片宽度,根据字符长度自动更改图片宽度 WW CWe@ 1
tmap Img = new tmap(Gheight,20); d/Gd6B.
Graphics g = omImage(Img); K0xNicp
awString(VNum,new nt(\"Arial\",10),new lidBrush(d),3,3); \"0SG*sGC
//在矩形内绘制字串(字串,字体,画笔颜色,左上x.左上y) k%d7H8\\K
moryStream ms=new moryStream(); ~~MRU#o
ve(ms,g); bi%pjDM
earContent(); //需要输出图象信息 要修改HTTP头 +=IL{
ntentType=\"image/Png\"; YHds z$
naryWrite(Array()); ]: R$VsqD
spose(); Q{Dk0p [
spose(); l5,}Q6!D
d(); ]},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 = lit(\',\') ; 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)cks)); s}i+,H/
} Vm_?U@7E
//int t = xt(35) ; 8c3A@PCfea
奥朗德俩女友状告杂志 因绯闻被迫分手 int t=xt(35); KweQa_0
if (temp != -1 temp == t) UzvU3u
{ PE%9~CO
return RndNum( VcodeNum ); K+Y3l
} %2F c
temp = t ; ^7\\vu M[
VNum += VcArray[t]; S@GFmkZa@
^R\\a1
} DZh\\rTT ra
return VNum ; EL:\\9
} NwX 7N
-----------------------------------end-------------------------------------------- aLx0s {
7ze`^uMs(
下面是px在在调用提交按钮的响应事件中 +] uks/2-
{i@$I(@h#=
private void Page_Load(object sender, entArgs e) %0N4J 7}x
{ _6po3i1IK
if(!PostBack ) jTy6N#7 a
{ i-h*3ob. /
ear(); ea,A H#
} :}]?P5\\Xxv
} g9%7PuNV
qaa[g|9H
public void doit(object sender, entArgs e) Q*,9 v+^
{ cjt*/}b7
if(Valid) 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(xt==ViewState[\"VNum\"].ToString()) nhXkHc
{ BYW z$P
)/`KI\\
eckLogin obj=new eckLogin(); ?_0r({=}m
string name=xt; wCC6R`z
string password=shPasswordForStoringInConfigFile(String(),\"md5\"); !Osjz ~r
if(!ecklogin(name,password)) -g|5=t BH
{ `!,fN6/_
direct(\"../px?action=Errorlogin\"); [ Hz5k
d(); ypE(:
return; XHZPGkW4)
} vHpZ $DOs
else $7F KjJ
{ KA!0,Wv?
d(\"adminname\",name); xVKX @LV
d(\"adminpass\",password); ,b0,[k
direct(\"px\"); \\z^P;
d(); ANrcfJ5
return; \"ZQ9IaK
} \\Qy%jfm:
5bC },nxA
} 4*P[ \\
else \'PV;JsQ\\h
{ jup*4ZP `_
ite(\"scriptalert(\\\"请输入正确的附加码!\\\");/script\"); ctkSZt
} 7M #!
} !hcv%aQTz
} i/\\8(T=Ff
如果提交过来的验证字符串正确就验证是否是合法用户! y19Ck|\"i
否则弹出提示返回登陆页!你也可以简化此页! z#3#vL
if(xt==ViewState[\"VNum\"].ToString()) lP}\'8| |
{ rb#Pp/Lp
ite(\"验证码正确\"); )\\[$S\"f]
} IM% \"
else $}3/(N\\G
{ EJ\\Ute
ite(\"验证码错误!\"); ,49!k8
} dOKb-Z 查看本文来源
云南治不孕不育孩子不爱吃饭怎么办
济南好医院男科

-
-
英超神吐槽阿森纳曼联羞死切尔西论豪门新标搭配
英超神吐槽!阿森纳曼联羞死切尔西 论豪门新标准英超回来了,还是熟悉的味...
- 装修施工 2020-05-31
-
英超神吐槽阿森纳曼联羞死切尔西论豪门新标搭配
-
-
短道队赴美集训武大靖曲春雨共庆生日搭配
短道队赴美集训 武大靖曲春雨共庆生日前言:有许多人关心,前往美国集训...
- 装修施工 2020-05-29
-
短道队赴美集训武大靖曲春雨共庆生日搭配
-
-
三十年老房翻新现代简约照亮四世同堂搭配
三十年老房翻新,现代简约照亮四世同堂!基本信息位置:北京面积:132㎡户型...
- 装修施工 2020-05-29
-
三十年老房翻新现代简约照亮四世同堂搭配
-
-
两弃将轮流暴走打脸雷管谁还说步行者石乐志搭配
两弃将轮流暴走打脸雷管 谁还说步行者石乐志?奥拉迪波与萨博尼斯在雷霆换...
- 装修施工 2020-05-28
-
两弃将轮流暴走打脸雷管谁还说步行者石乐志搭配
-
-
钢炮高效率猛龙人上双格里芬分快船被掀翻搭配
钢炮高效率猛龙人上双 格里芬分快船被掀翻格里芬18分快船被猛龙掀翻 ...
- 装修施工 2020-05-27
-
钢炮高效率猛龙人上双格里芬分快船被掀翻搭配
-
-
深度死亡秒定赛季成败年后他们回来了搭配
深度|死亡秒定赛季成败 年后!他们回来了唐斯怒吼赛前可能连摇头都做不到的...
- 装修施工 2020-05-27
-
深度死亡秒定赛季成败年后他们回来了搭配