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

Session丢失问题
首先是页面上的验证码,即使浏览器关闭以后重新打开仍然会出现前一次的验证码。这时候登录的时候那段存储验证码的session语句就会报错。



然后就是主页登录之前主页显示的是
登录之后主页仍然显示的是以上图片。但是刷新页面后又会变成
其他页面都正常。


另外以上问题在本地测试均正确。传服务器后就出现了这些问题。。很纠结。


------解决方案--------------------
每次刷新都会执行Default,从Page_Load事件中看 
//绘制验证码文字
graphics.DrawString(CreateCheckCodeString(), font, brush, rect);

感觉 Session["CodeString"]都是保存最新的验证码。
------解决方案--------------------
看你的问题 
总感觉你代码没错 就是那几个步骤的先后顺序错了 加个判断调试一下 看下session 的初始赋值和取值


------解决方案--------------------
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>

function ReloadImg()
{
$get("ValidationImg").src=$get("ValidationImg").src.split('?',1)+"?"+Math.random();
return false ;
}

<img src="Img.aspx" id="ValidationImg" class="InputValidationImage" 
title="如看不清,请点击验证码刷新" onclick ="ReloadImg()" 
style="cursor:pointer: width: 50px;">


我用了ASP.NET State Service,用下来还没发现问题。AutoEventWireup="true"可能有用的。
------解决方案--------------------
新开页面的Session中是没有验证码的。
这个时候你去访问当然报错哦
------解决方案--------------------
同意楼上的建议。
同时建立楼主通过ajax获取验证码,在用户输入密码之后动态的加载验证码。