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获取验证码,在用户输入密码之后动态的加载验证码。