日期:2014-05-18  浏览次数:20567 次

ASP.NET中验证码的Session如何传到登陆页面呢?
按照网上通用的方法,把验证码做成一个页面ValidationCode.aspx,其中保存了验证码中字符的Session["RandomString"],在登陆页面的验证码图片链接是"ValidationCode.aspx",这样编译后的页面可以显示验证码,但是验证码的Session没有传到登陆页面啊.在登陆页面调用Session["RandomString"]的时候,会产生异常"NullReferenceException",请教如何把Session进行传值呢?

------解决方案--------------------
To yuan74521940
你的方法是在cookies中使用的。。但是楼主是用 session啊

To 楼主
发你的调用判断session的代码看看 
NullReferenceException就是空引用
我的猜想是 你在pageOnload的事件中一开始就调用了seesion来判断,但是此时Seesion还没有在ValidationCode.aspx在定义。。。
不过还是看过代码才知道。。。
------解决方案--------------------
RandomString = Session["RandomString"].ToString().Trim();
写到
protected void LoginBt_Click(object sender, EventArgs e)
{
......//判断验证码是否正确.
}
事件中!!!
这样看看!!
------解决方案--------------------
建议在Session_Start函数中加上

Session["RandomString"] = "";