注册页面:
<img id="Image1" src="Image.aspx" onclick="src='Image.aspx?s='+Math.random()" title="看不清,换一张"  style="left: 0px; height:23px; width:57px; position: relative; top: 3px"  />Image.aspx页面后台代码如下:
protected void Page_Load(object sender, EventArgs e)
    {
        this.CreateCheckCodeImage(GenerateCheckCode());
            }
    override protected void OnInit(EventArgs e)
    {
        //
        // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
        //
        InitializeComponent();
        base.OnInit(e);
    }    private void InitializeComponent()
    {
        this.Load += new System.EventHandler(this.Page_Load);
    }
    private string GenerateCheckCode()
    {
        int number;
        char code;
        string checkCode = String.Empty;        System.Random random = new Random();
        //里这i为随机数的个数
        for (int i = 0; i < 4; i++)
        {
            number = random.Next();            if (number % 2 == 0)
                code = (char)('0' + (char)(number % 5));
            else
                code = (char)('a' + (char)(number % 7));            checkCode += code.ToString();
        }        Session["CheckCode"] = checkCode.ToLower();
        return checkCode;
    }    private void CreateCheckCodeImage(string checkCode)
    {
        if (checkCode == null || checkCode.Trim() == String.Empty)
            return;        System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
        Graphics g = Graphics.FromImage(image);        try
        {
            //生成随机生成器
            Random random = new Random();            //清空图片背景色
            g.Clear(Color.White);            //画图片的背景噪音线
            for (int i = 0; i < 1000; i++)
            {
                int x1 = random.Next(image.Width);
                int x2 = random.Next(image.Width);
                int y1 = random.Next(image.Height);
                int y2 = random.Next(image.Height);                g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
            }            Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
            System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
            g.DrawString(checkCode, font, brush, 2, 2);            //画图片的前景噪音点
            for (int i = 0; i < 10; i++)
            {
                int x = random.Next(image.Width);
                int y = random.Next(image.Height);                image.SetPixel(x, y, Color.FromArgb(random.Next()));
            }            //画图片的边框线
            g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
            Response.ClearContent();
            Response.ContentType = "image/Gif";
            Response.BinaryWrite(ms.ToArray());
        }
        finally
        {
            g.Dispose();
            image.Dispose();
        }
    }
我想在客户端 判断用户输入的验证码是否正确 ! 如果在注册页面后台(Page_Load) 给隐藏域赋值获取验证码的值 每次页面
加载的时候隐藏域中的值为空 再次刷新则为上次的验证码的值  我想直接获取另一个页面验证码的值 !(Image.aspx) 和现在验证码作比较 !!!
高手有什么好的方法吗???

解决方案 »

  1.   

    bool IsSame= Session["CheckCode"]==null?false: "当前验证码"==  Session["CheckCode"].ToString();
      

  2.   

    你不是存入session了吗?直接失去焦点后 AJAX判断 session中的值和你填的是不是一样的不就行了,难道是我没看懂需求
      

  3.   

    你这样做是不靠谱的验证啊。要是session[]过期了呢?
      

  4.   


    我先问下大家  前台脚本可以获取Session吗?如果可以,那这个问题不就解决了!
      

  5.   

    客户端验证!没试过!
    只在留言的时候在客户端通过ajax验证在返回
      

  6.   

    直接用<%=   Session[ "CheckCode"]%> 来和客户填写的值判断不就可以了?
      

  7.   

    哦,你的session赋值在另一一个页面,当前页面没有该session的值,因为页面没有刷新。如果这样的话,可以用cookies来读取。 Response.Cookies["Login"].Value ="admin";   
    js
     function getCookie(name)
    {
      var strCookie=document.cookie;
      var arrCookie=strCookie.split("; ");
      for(var i=0;i<arrCookie.length;i++)
      {
         var arr=arrCookie[i].split("=");
         if(arr[0]==name)
         {
            // return true;
             return unescape(arr[1])
         }
      }
      return "";
     }
      alert(getCookie('Login'))  ;
      

  8.   


    如果是当前页面当然可以,如果另外页面,本页面不刷新,当然拿不到新的session值
      

  9.   

    这个不行的 我的SESSION保存在另一个页面!!!!
      

  10.   


    用cookies试试。应该可以。
      

  11.   

    1、保存到coolie,前台js可以获取cookie的值
    2、还 可以 用ajax去后台获取值。
      

  12.   


    session说用户级的,你这句话啥意思?
      

  13.   

    session说用户级的=》session是用户级的
      

  14.   

    写页面cookie  根据cookie判定
      

  15.   

    asp代码:
    <input id="tempCode" type="hidden" />
    <input id="txtCode" name="text" onfocus="GetCode()" style="width: 41px" type="text" />
    <img id="imgcode" runat="server" alt="点击刷新" onclick="reloadcode()" src="" />
    js代码:
    //进行验证
    $(document).ready(function(){
        $.formValidator.initConfig({
            formid:"form1",
            onerror:function(msg){alert(msg)},
            onsuccess:function(){
                //对验证码进行检查
                var inputCode=document.getElementById("txtCode").value;
                if(realCode==inputCode.toLowerCase()){
                    return true;
                }
                else{
                    reloadcode();
                    GetCode();
                    alert("验证码不正确!");
                    return false;
                }
            }
        });
        //验证码检查
        $("#txtCode").formValidator({onshow:"请输入左边图片的字母",onfocus:"请输入左边图片的字母",oncorrect:""}).inputValidator({min:4,max:4,onerror:"验证码不正确,请确认"});
    });
    //获取验证码
    function reloadcode(){
    //清空原来的验证码
         document.getElementById("txtCode").value="";
         document.getElementById("imgcode").src ='../生成验证码图片路径.aspx'+'?'+new Date;void(0);
    }
        //获得验证码
    function GetCode(){
        CallServer("", "");           
    } 
        //接收从服务器端回调的数据
    function ReceiveServerData(rValue)

    ///对验证码进行校验
       document.getElementById("tempCode").value =rValue;         
    }
    不知道是不是你要的那种