首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于验证码的有关问题:打开页面后,第一次登陆,验证码总是错误!第二次就正确了!怎么解决?

2011-12-26 
关于验证码的问题:打开页面后,第一次登陆,验证码总是错误!!第二次就正确了!!怎么解决??我的验证码是放在im

关于验证码的问题:打开页面后,第一次登陆,验证码总是错误!!第二次就正确了!!怎么解决??
我的验证码是放在   img.aspx里的
在login.aspx里放了验证码校验

第一次运行总是验证码不正确,然后再输入就好了

找原因如下,第一次加载   login.aspx时,   Session[ "VNum "]还未没建立,所以总时验证码不正确

我试着在login.aspx的   pageload里加个默认的   Session[ "VNum "],但是这样做,第一次登陆时,验证码根本就时个摆设,没用

请问各位,这个问题应该怎么解决呢???

[解决办法]
img.aspx中生成图片的同时把验证码放在session中.然后根据login.aspx用户填入的值与这个session中的值比较.
[解决办法]
1,第一次从浏览器中查看 生成验正码存放到Session[ "A "]中

2,假设你在一个文本框内输入字符和生成的验正码进行比较

TextBox1.Text==Session[ "A "].ToString()

3,点击Button键比较 此时页面又从服务器端返回,生成另外一个验正码

所以 验正码不会正确;

4,在生成验正码的那个页面 Page_Load 里写上

if(IsPostBack)
return;

这样看看可以不?? 我只是猜测,有的地方说的不对 请大家不要YY




[解决办法]
应该把Session[ "VNum "]= "xxxx " ,放在生成IMG图片的程序里,这样才能保证生成图片的同时也生成了SESSION
[解决办法]
你的“login.aspx里放了验证码校验”如何做,如果放在page_load中那么肯定就是问题的根源了。

校验应该在有关按钮或者其它什么控件的事件后执行,这时候login.aspx肯定page_load已经两次了并且是 IsPostback==true,而且img.aspx在第一个装入login.aspx的之后、第二次装入之前就装入了。

你总不至于把判断检验码是否正确的代码放在page_load中吧?如果是,那么可就学到偏门上去了。
[解决办法]
生成字符串的变量没有存。比较有问题。
[解决办法]
可能是浏览器缓存的问题,我也遇到过
你加这段代码试试

Response.BufferOutput = true;
Response.Cache.SetExpires(DateTime.Now.AddMilliseconds(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.AppendHeader( "Pragma ", "No-Cache ");
string VNum =MakeValidateCode( );
Session[ "VNum "]=VNum;
ValidateCode(VNum);
[解决办法]
顶,我也遇到了同样的问题。

热点排行