搜索不到几篇关于这个问题的,有人说是缓存的问题,我清了缓存照样要两次登录,一般是退出系统后再登录的时候必然第一次说验证码错误,退出的时候我已经session.abandon();过了啊!
百思不得其解!!CSDN的验证码就没出过类似问题!!谁能解决吗???
26 个解决方案
#1
需要验证码代码的话我可以贴出来!
#2
登录的时候把验证码RESPONSE.WRITE出来看是不是上一次登录时候的那个!
#3
还应该是代码的问题,用楼上说的方法把验证码RESPONSE.WRITE出来
#4
如果代码有问题,为什么第一次打开浏览器登录就没问题呢??
难道session.abandon()不能完全清楚所有的session?
难道session.abandon()不能完全清楚所有的session?
#5
那一定是你的session里面没有值吧?你跟踪看一下
#6
你的验证码是放在另外一个aspx中的图片上的吗?
#7
单步调一下。
#8
to:lovvver(www.notsoft.cn)
是放到其他页面里的!
<tr bgcolor="#FFFFFF">
<td width="111" align="right" height="20">验证码:</td>
<td width="229"><asp:Image ID="ImageCheck" runat="server" src="ValidateCode.aspx"></asp:Image><asp:textbox id="ValidateCode" maxlength="5" size="8" Runat="server" height="20px" class="igray1" ></asp:textbox>
</td>
</tr>
是放到其他页面里的!
<tr bgcolor="#FFFFFF">
<td width="111" align="right" height="20">验证码:</td>
<td width="229"><asp:Image ID="ImageCheck" runat="server" src="ValidateCode.aspx"></asp:Image><asp:textbox id="ValidateCode" maxlength="5" size="8" Runat="server" height="20px" class="igray1" ></asp:textbox>
</td>
</tr>
#9
Mark
#10
肯定是代码问题
#11
if (String.Compare(Convert.ToString(Session["CheckCode"]), (ValidateCode.Text.ToUpper()), true) != 0)
{
Label1.Text = "验证码错误,请输入正确的验证码!";
Label1.Visible = true;
return;
}
{
Label1.Text = "验证码错误,请输入正确的验证码!";
Label1.Visible = true;
return;
}
#12
if (String.Compare(Convert.ToString(Session["CheckCode"]).ToUpper(), (ValidateCode.Text.ToUpper()), true) != 0)
{
Label1.Text = "验证码错误,请输入正确的验证码!";
Label1.Visible = true;
return;
}
应该是这样吧!我想我看到错误在哪里了!
{
Label1.Text = "验证码错误,请输入正确的验证码!";
Label1.Visible = true;
return;
}
应该是这样吧!我想我看到错误在哪里了!
#13
下面是我退出的代码:
Session.Abandon();
Response.Write("<script language='javascript'>");
Response.Write("alert('谢谢您的使用!');");
Response.Write("window.navigate('/Default.aspx');");
Response.Write("</script>");
上面的改过后还有这个问题,可能是没刷新页面!哪位有更好的退出方式吗??
Session.Abandon();
Response.Write("<script language='javascript'>");
Response.Write("alert('谢谢您的使用!');");
Response.Write("window.navigate('/Default.aspx');");
Response.Write("</script>");
上面的改过后还有这个问题,可能是没刷新页面!哪位有更好的退出方式吗??
#14
唉,你都调用了 Session.Abandon();
还调用干吗呢,window.navigate('/Default.aspx');
这样当加载/Default.aspx页面时Session又开始了。
还调用干吗呢,window.navigate('/Default.aspx');
这样当加载/Default.aspx页面时Session又开始了。
#15
修改一下,如果每次退出都必须退到'/Default.aspx‘页,那 Session.Abandon(); 代码应该写到Default.aspx里面
#16
T0:jimh(Jimmy)
我是想清除session后自动跳转到登录页面,你说的那个方法我试过了,如果那样做生成验证码的那个页面里的session会被清除掉,验证码永远都不对!
我是想清除session后自动跳转到登录页面,你说的那个方法我试过了,如果那样做生成验证码的那个页面里的session会被清除掉,验证码永远都不对!
#17
不知道为什么都喜欢用Session.Abandon,直接把你的那些Session置空不就行了。
另外:
if (String.Compare(Convert.ToString(Session["CheckCode"]), (ValidateCode.Text.ToUpper()), true) != 0)
{
Label1.Text = "验证码错误,请输入正确的验证码!";
Label1.Visible = true;
return;
}
这里代码臃肿不堪,还没有null检测:
if ( Session["CheckCode"] == null )
ShowError( "登录超时,请重新登录" );
else if ( ((string) Session["CheckCode"]).ToUpper() != ValidateCode.Text.ToUpper() )
ShowError( "验证码输入错误,请重新登录" );
//.....
void ShowError( string message )
{
Label1.Text = message;
Label1.Visible = true;
return;
}
另外:
if (String.Compare(Convert.ToString(Session["CheckCode"]), (ValidateCode.Text.ToUpper()), true) != 0)
{
Label1.Text = "验证码错误,请输入正确的验证码!";
Label1.Visible = true;
return;
}
这里代码臃肿不堪,还没有null检测:
if ( Session["CheckCode"] == null )
ShowError( "登录超时,请重新登录" );
else if ( ((string) Session["CheckCode"]).ToUpper() != ValidateCode.Text.ToUpper() )
ShowError( "验证码输入错误,请重新登录" );
//.....
void ShowError( string message )
{
Label1.Text = message;
Label1.Visible = true;
return;
}
#18
To:Ivony()
大哥!谢谢啊!!(你看,还说谢谢!!)
大哥!谢谢啊!!(你看,还说谢谢!!)
#19
To:Ivony()
我看你写void ShowError( string message )
就可以用,我总要写上protected void,有时候写成public void
请问这三种写法有什么区别啊?
初学莫笑!!
我看你写void ShowError( string message )
就可以用,我总要写上protected void,有时候写成public void
请问这三种写法有什么区别啊?
初学莫笑!!
#20
Learning
#21
代码问题,应该是验证码已经刷新了.但页面没有正确读到.导致比较的时候不相符.把比较的两个值打出来验证一下
#22
兄弟,你确定你游标的位置正确吗?
#23
#24
处理流程有问题.好好检查一下.
#25
验证马多的是,你上网上随便再下个吧。别死抠一个了。
#26
Session.Abandon();
Response.Write("<script language='javascript'>");
Response.Write("alert('谢谢您的使用!');");
Response.Write("window.navigate('/Default.aspx');");
Response.Write("</script>");
这个代码是对的,window.navigate('/Default.aspx');有时候不能刷新default.aspx,
要在这个页面的page_load里加入if(!this.IsPostBack)判断,然后重新刷新一次验证码!
估计差不多!
Response.Write("<script language='javascript'>");
Response.Write("alert('谢谢您的使用!');");
Response.Write("window.navigate('/Default.aspx');");
Response.Write("</script>");
这个代码是对的,window.navigate('/Default.aspx');有时候不能刷新default.aspx,
要在这个页面的page_load里加入if(!this.IsPostBack)判断,然后重新刷新一次验证码!
估计差不多!
#1
需要验证码代码的话我可以贴出来!
#2
登录的时候把验证码RESPONSE.WRITE出来看是不是上一次登录时候的那个!
#3
还应该是代码的问题,用楼上说的方法把验证码RESPONSE.WRITE出来
#4
如果代码有问题,为什么第一次打开浏览器登录就没问题呢??
难道session.abandon()不能完全清楚所有的session?
难道session.abandon()不能完全清楚所有的session?
#5
那一定是你的session里面没有值吧?你跟踪看一下
#6
你的验证码是放在另外一个aspx中的图片上的吗?
#7
单步调一下。
#8
to:lovvver(www.notsoft.cn)
是放到其他页面里的!
<tr bgcolor="#FFFFFF">
<td width="111" align="right" height="20">验证码:</td>
<td width="229"><asp:Image ID="ImageCheck" runat="server" src="ValidateCode.aspx"></asp:Image><asp:textbox id="ValidateCode" maxlength="5" size="8" Runat="server" height="20px" class="igray1" ></asp:textbox>
</td>
</tr>
是放到其他页面里的!
<tr bgcolor="#FFFFFF">
<td width="111" align="right" height="20">验证码:</td>
<td width="229"><asp:Image ID="ImageCheck" runat="server" src="ValidateCode.aspx"></asp:Image><asp:textbox id="ValidateCode" maxlength="5" size="8" Runat="server" height="20px" class="igray1" ></asp:textbox>
</td>
</tr>
#9
Mark
#10
肯定是代码问题
#11
if (String.Compare(Convert.ToString(Session["CheckCode"]), (ValidateCode.Text.ToUpper()), true) != 0)
{
Label1.Text = "验证码错误,请输入正确的验证码!";
Label1.Visible = true;
return;
}
{
Label1.Text = "验证码错误,请输入正确的验证码!";
Label1.Visible = true;
return;
}
#12
if (String.Compare(Convert.ToString(Session["CheckCode"]).ToUpper(), (ValidateCode.Text.ToUpper()), true) != 0)
{
Label1.Text = "验证码错误,请输入正确的验证码!";
Label1.Visible = true;
return;
}
应该是这样吧!我想我看到错误在哪里了!
{
Label1.Text = "验证码错误,请输入正确的验证码!";
Label1.Visible = true;
return;
}
应该是这样吧!我想我看到错误在哪里了!
#13
下面是我退出的代码:
Session.Abandon();
Response.Write("<script language='javascript'>");
Response.Write("alert('谢谢您的使用!');");
Response.Write("window.navigate('/Default.aspx');");
Response.Write("</script>");
上面的改过后还有这个问题,可能是没刷新页面!哪位有更好的退出方式吗??
Session.Abandon();
Response.Write("<script language='javascript'>");
Response.Write("alert('谢谢您的使用!');");
Response.Write("window.navigate('/Default.aspx');");
Response.Write("</script>");
上面的改过后还有这个问题,可能是没刷新页面!哪位有更好的退出方式吗??
#14
唉,你都调用了 Session.Abandon();
还调用干吗呢,window.navigate('/Default.aspx');
这样当加载/Default.aspx页面时Session又开始了。
还调用干吗呢,window.navigate('/Default.aspx');
这样当加载/Default.aspx页面时Session又开始了。
#15
修改一下,如果每次退出都必须退到'/Default.aspx‘页,那 Session.Abandon(); 代码应该写到Default.aspx里面
#16
T0:jimh(Jimmy)
我是想清除session后自动跳转到登录页面,你说的那个方法我试过了,如果那样做生成验证码的那个页面里的session会被清除掉,验证码永远都不对!
我是想清除session后自动跳转到登录页面,你说的那个方法我试过了,如果那样做生成验证码的那个页面里的session会被清除掉,验证码永远都不对!
#17
不知道为什么都喜欢用Session.Abandon,直接把你的那些Session置空不就行了。
另外:
if (String.Compare(Convert.ToString(Session["CheckCode"]), (ValidateCode.Text.ToUpper()), true) != 0)
{
Label1.Text = "验证码错误,请输入正确的验证码!";
Label1.Visible = true;
return;
}
这里代码臃肿不堪,还没有null检测:
if ( Session["CheckCode"] == null )
ShowError( "登录超时,请重新登录" );
else if ( ((string) Session["CheckCode"]).ToUpper() != ValidateCode.Text.ToUpper() )
ShowError( "验证码输入错误,请重新登录" );
//.....
void ShowError( string message )
{
Label1.Text = message;
Label1.Visible = true;
return;
}
另外:
if (String.Compare(Convert.ToString(Session["CheckCode"]), (ValidateCode.Text.ToUpper()), true) != 0)
{
Label1.Text = "验证码错误,请输入正确的验证码!";
Label1.Visible = true;
return;
}
这里代码臃肿不堪,还没有null检测:
if ( Session["CheckCode"] == null )
ShowError( "登录超时,请重新登录" );
else if ( ((string) Session["CheckCode"]).ToUpper() != ValidateCode.Text.ToUpper() )
ShowError( "验证码输入错误,请重新登录" );
//.....
void ShowError( string message )
{
Label1.Text = message;
Label1.Visible = true;
return;
}
#18
To:Ivony()
大哥!谢谢啊!!(你看,还说谢谢!!)
大哥!谢谢啊!!(你看,还说谢谢!!)
#19
To:Ivony()
我看你写void ShowError( string message )
就可以用,我总要写上protected void,有时候写成public void
请问这三种写法有什么区别啊?
初学莫笑!!
我看你写void ShowError( string message )
就可以用,我总要写上protected void,有时候写成public void
请问这三种写法有什么区别啊?
初学莫笑!!
#20
Learning
#21
代码问题,应该是验证码已经刷新了.但页面没有正确读到.导致比较的时候不相符.把比较的两个值打出来验证一下
#22
兄弟,你确定你游标的位置正确吗?
#23
#24
处理流程有问题.好好检查一下.
#25
验证马多的是,你上网上随便再下个吧。别死抠一个了。
#26
Session.Abandon();
Response.Write("<script language='javascript'>");
Response.Write("alert('谢谢您的使用!');");
Response.Write("window.navigate('/Default.aspx');");
Response.Write("</script>");
这个代码是对的,window.navigate('/Default.aspx');有时候不能刷新default.aspx,
要在这个页面的page_load里加入if(!this.IsPostBack)判断,然后重新刷新一次验证码!
估计差不多!
Response.Write("<script language='javascript'>");
Response.Write("alert('谢谢您的使用!');");
Response.Write("window.navigate('/Default.aspx');");
Response.Write("</script>");
这个代码是对的,window.navigate('/Default.aspx');有时候不能刷新default.aspx,
要在这个页面的page_load里加入if(!this.IsPostBack)判断,然后重新刷新一次验证码!
估计差不多!