在登录页面产生校验码 和输入的校验码对比
代码如下:
if (CheckCode.ToLower() != Session["checkCode"].ToString().ToLower())
{
myDbAccess.ExeJs("alert('系统提示:你输入的校验码不正确!');", Page);
return;
}
多数用户都没有问题
只有极个别用户登录是提示if (CheckCode.ToLower() != Session["checkCode"].ToString().ToLower())这句话出错
提示“未将对象引用到实例”
在我自己的机器*问将cookie禁用后也是出现上述问题,所以我认为是客户端的cookie没有启用,但是我查看客户端确实是启用的。
该如何解决这个问题,有没有人遇到过?
我写一个很简单的页面,在当页产生的session,本页可以访问,一旦跳转到其他页面,再去读取去session 就出现session未将对象引用到实例。
郁闷中......
25 个解决方案
#1
if (CheckCode.ToLower() != Session["checkCode"].ToString().ToLower())
{
myDbAccess.ExeJs("alert('系统提示:你输入的校验码不正确!');", Page);
return;
}
=>
if(Session["checkCode"]==null)
{
myDbAccess.ExeJs("alert('系统提示:校验码未生成!');", Page);
return;
}
if (CheckCode.ToLower() != Session["checkCode"].ToString().ToLower())
{
myDbAccess.ExeJs("alert('系统提示:你输入的校验码不正确!');", Page);
return;
}
{
myDbAccess.ExeJs("alert('系统提示:你输入的校验码不正确!');", Page);
return;
}
=>
if(Session["checkCode"]==null)
{
myDbAccess.ExeJs("alert('系统提示:校验码未生成!');", Page);
return;
}
if (CheckCode.ToLower() != Session["checkCode"].ToString().ToLower())
{
myDbAccess.ExeJs("alert('系统提示:你输入的校验码不正确!');", Page);
return;
}
#2
工具-> 文件夹选项-> 在不同的窗口中打开不同的文件夹
也可能让Session 失效 。不怎么稳定 。
看能用Cookie协作不 。
也可能让Session 失效 。不怎么稳定 。
看能用Cookie协作不 。
#3
应该不是Session的问题,Session是存储在服务器端的,跨页面都是有效的。
如果user有一个有效的session,并且session没有过期,那么在程式页面都是
可以读取到这个session的。
如果user有一个有效的session,并且session没有过期,那么在程式页面都是
可以读取到这个session的。
#4
为null的时候 还 ToString() 当然会报错.
#5
这样写 起码不报错了。
#6
你要确定session里面有值才行,不然tostring会出错的
#7
不要乱tostring
P哥告诉我的
P哥告诉我的
#8
session【xxxx】别tostring。
#9
+++
#10
我的Session["checkCode"]是页面一载入就生成的一个校验码图片,用户需要输入校验码,然后登录,点击登录的时候,报这个错误的。
是部分用户出现这个情况,大多数没有错误。
是部分用户出现这个情况,大多数没有错误。
#11
你这个情况就是客户端cookie未写入导致的
Session的实现是依托于cookie的
Session的实现是依托于cookie的
#12
是Session 丢失了
Session 有效时间设置长点
Session 有效时间设置长点
#13
#14
怎么设置呀,我看客户端是启用的呀,难道还有别的地方那个限制吗?
有一台win7 的ie9
有一台xp 的ie6
还有 VISTA ie8
#15
就登录的一瞬间就消失了。
#16
清空缓存 再试下
#17
Session.Timeout = 10; 这样就是10分钟了 登录页面加载的时候设置下吧
#18
不行 当页生成的session 只在当页有效
#19
什么原因呀,几台电脑就是登录不上,郁闷死了....................
#20
先判断Session里是否有值,再进行ToString(),如果Session为Null的话,是无法进行TOString滴,所以会报错滴
#21
if (Session["checkCode"]!=null && CheckCode.ToLower() != Session["checkCode"].ToString().ToLower())
#22
现在的问题是这几台电脑获取不到登录时系统分配的校验码(ession["checkCode"])
如果先判断Session里是否有值,程序是不出错了,但是无法登录,也就是永远验证不过去。
#23
关键可能是session失效了,这个LZ可以去了解下session的几种保存方式,所以在使用session一定要判断下该会话内容是否还存在
#24
多谢各位了,郁闷中......
#25
<sessionState mode="StateServer",试试
#1
if (CheckCode.ToLower() != Session["checkCode"].ToString().ToLower())
{
myDbAccess.ExeJs("alert('系统提示:你输入的校验码不正确!');", Page);
return;
}
=>
if(Session["checkCode"]==null)
{
myDbAccess.ExeJs("alert('系统提示:校验码未生成!');", Page);
return;
}
if (CheckCode.ToLower() != Session["checkCode"].ToString().ToLower())
{
myDbAccess.ExeJs("alert('系统提示:你输入的校验码不正确!');", Page);
return;
}
{
myDbAccess.ExeJs("alert('系统提示:你输入的校验码不正确!');", Page);
return;
}
=>
if(Session["checkCode"]==null)
{
myDbAccess.ExeJs("alert('系统提示:校验码未生成!');", Page);
return;
}
if (CheckCode.ToLower() != Session["checkCode"].ToString().ToLower())
{
myDbAccess.ExeJs("alert('系统提示:你输入的校验码不正确!');", Page);
return;
}
#2
工具-> 文件夹选项-> 在不同的窗口中打开不同的文件夹
也可能让Session 失效 。不怎么稳定 。
看能用Cookie协作不 。
也可能让Session 失效 。不怎么稳定 。
看能用Cookie协作不 。
#3
应该不是Session的问题,Session是存储在服务器端的,跨页面都是有效的。
如果user有一个有效的session,并且session没有过期,那么在程式页面都是
可以读取到这个session的。
如果user有一个有效的session,并且session没有过期,那么在程式页面都是
可以读取到这个session的。
#4
为null的时候 还 ToString() 当然会报错.
#5
这样写 起码不报错了。
#6
你要确定session里面有值才行,不然tostring会出错的
#7
不要乱tostring
P哥告诉我的
P哥告诉我的
#8
session【xxxx】别tostring。
#9
+++
#10
我的Session["checkCode"]是页面一载入就生成的一个校验码图片,用户需要输入校验码,然后登录,点击登录的时候,报这个错误的。
是部分用户出现这个情况,大多数没有错误。
是部分用户出现这个情况,大多数没有错误。
#11
你这个情况就是客户端cookie未写入导致的
Session的实现是依托于cookie的
Session的实现是依托于cookie的
#12
是Session 丢失了
Session 有效时间设置长点
Session 有效时间设置长点
#13
#14
怎么设置呀,我看客户端是启用的呀,难道还有别的地方那个限制吗?
有一台win7 的ie9
有一台xp 的ie6
还有 VISTA ie8
#15
就登录的一瞬间就消失了。
#16
清空缓存 再试下
#17
Session.Timeout = 10; 这样就是10分钟了 登录页面加载的时候设置下吧
#18
不行 当页生成的session 只在当页有效
#19
什么原因呀,几台电脑就是登录不上,郁闷死了....................
#20
先判断Session里是否有值,再进行ToString(),如果Session为Null的话,是无法进行TOString滴,所以会报错滴
#21
if (Session["checkCode"]!=null && CheckCode.ToLower() != Session["checkCode"].ToString().ToLower())
#22
现在的问题是这几台电脑获取不到登录时系统分配的校验码(ession["checkCode"])
如果先判断Session里是否有值,程序是不出错了,但是无法登录,也就是永远验证不过去。
#23
关键可能是session失效了,这个LZ可以去了解下session的几种保存方式,所以在使用session一定要判断下该会话内容是否还存在
#24
多谢各位了,郁闷中......
#25
<sessionState mode="StateServer",试试