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

zhangsn 2007-01-21 05:29:47
我的验证码是放在 img.aspx里的
在login.aspx里放了验证码校验

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

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

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

请问各位,这个问题应该怎么解决呢???
...全文
1528 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiyongjie 2008-08-07
  • 打赏
  • 举报
回复
顶,lz解决了问题没有啊,我也是遇到了这个问题呢,很烦人
chashanz 2007-01-23
  • 打赏
  • 举报
回复
顶,我也遇到了同样的问题。
zdyguilong 2007-01-22
  • 打赏
  • 举报
回复
可能是浏览器缓存的问题,我也遇到过
你加这段代码试试

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);
exiori 2007-01-22
  • 打赏
  • 举报
回复
生成字符串的变量没有存。比较有问题。
zhangsn 2007-01-21
  • 打赏
  • 举报
回复
我是把生成验证码的文件img.aspx这样连到login.aspx里:
<img src="img.aspx">
Session["VNum"]是在img.aspx里生成的
在login.aspx里,判断用户输入的是否和Session["VNum"]相同

但是,第一次加载login.aspx时,Session["VNum"]好像并未创建?
  • 打赏
  • 举报
回复
你的“login.aspx里放了验证码校验”如何做,如果放在page_load中那么肯定就是问题的根源了。

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

你总不至于把判断检验码是否正确的代码放在page_load中吧?如果是,那么可就学到偏门上去了。
WORLDNIC 2007-01-21
  • 打赏
  • 举报
回复
应该把Session["VNum"]="xxxx" ,放在生成IMG图片的程序里,这样才能保证生成图片的同时也生成了SESSION
zhangsn 2007-01-21
  • 打赏
  • 举报
回复
我觉得,在第一次从浏览器查看 login.aspx时,根本就没创建 Session["VNum"]
sunnysky123 2007-01-21
  • 打赏
  • 举报
回复
1,第一次从浏览器中查看 生成验正码存放到Session["A"]中

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

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

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

所以 验正码不会正确;

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

if(IsPostBack)
return;

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



cpp2017 2007-01-21
  • 打赏
  • 举报
回复
img.aspx中生成图片的同时把验证码放在session中. 然后根据login.aspx用户填入的值与这个session中的值比较.

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧