纠结一个问题,弄个呢半天都不出来,
自己调试,网上找资料也没找出来。我首页登录采用异步调用成功。
ExecSql es = new ExecSql();
        Response.Clear();
        string results = "";
        string names = Request.QueryString["names"].ToString();
        string pwd = Request.QueryString["pwd"].ToString();        string sql = "select vIP,vIsPass,vName from vip where vName='" + Common.CommonMethod.StripHTML(names) + "' and vPwd='" + Common.Entrypt.EntryptMD5(pwd) + "'";
        DataTable dt=es.query(sql); 
        if (dt.Rows.Count > 0)
        {
            vip vp = new vip();
            vp.vIP =Convert.ToInt32(dt.Rows[0][0].ToString());
            vp.vIsPass =Convert.ToInt32(dt.Rows[0][1].ToString());
            vp.vName = dt.Rows[0]["vName"].ToString();
            Session["uvip"] = vp;
            Session.Timeout = 60;            results = "欢迎您 " + names + "     <a href=\"vipAdmin/index.html\" target=\"_blank\">进入后台</a>";
            Response.Cookies["viplogin"].Value =names;
        }
        else
        {
            results = "0";
        }        Response.Write(results);
        Response.Flush();
        Response.Close();之后,我点击到后台管理,怎么调试的时候,老是报没找到session的值。我明明在上面已经实例化呢一个。
是不是异步调用不能存储session或者是别的原因。
补充说明:我在正常的登录页面里面登录是OK的。
好怪。

解决方案 »

  1.   

    自己顶一下。知道多少的说多少,来着有分
    以前怀疑是路径的问题。但怎么调试都弄出来,都报找不到对象的错误(找不到session)
      

  2.   

    用断点 找下 这个问题应该不大
    你这段有问题  vip vp = new vip();
      vp.vIP =Convert.ToInt32(dt.Rows[0][0].ToString());
      vp.vIsPass =Convert.ToInt32(dt.Rows[0][1].ToString());
      vp.vName = dt.Rows[0]["vName"].ToString();
      Session["uvip"] = vp;   //你的vp之前也没给赋值啊 你只是把VP下面的子集(就是上三行)给值了
      Session.Timeout = 60;
    你的vp没有正确赋值 所以session 值为null 调试下着段代码 问题应该在这
      

  3.   

    虽然你在第一页没问题 是因为 你没调用刚才我给你发那段的代码  这些只是为下页做的准备工作还有 session 可以隔页传值 这是肯定的
      

  4.   

    补充说明:我在正常的登录页面里面登录是OK的。
    这就说明:你没给session赋上值
      

  5.   


    我调试呢,Session["uvip"]=vp;里面有值的。这是我在后台写的代码看行不 int vip = 0;
            if (Session["uvip"]== null)
            {
                Response.Write("<script language=\"javascript\">alert('登录超时,请您重新登录!');top.window.location.href='../VipLogin.aspx';</script>");
                return;
            }else{
        ....
    }
    好怪。如果你说session没有赋值的话,那么应该怎么写呢?
      

  6.   

    session存东西,如果跳转的页面过多的话会丢失,我有这样的情况,你最好把详细的叶面数据,错误信息都贴出来
      

  7.   

    我就跳转呢一个。我断点调试呢一下,发现session里面的vip是有值的。
    可是在后台,就报“未将对象引用设置到对象的实例”。
    行 34:         //else
    行 35:         //{
    行 36:            string uName = ((vip)(Session["uvip"])).vName;
    行 37:       //  }
    行 38:         //if (!ExistuvipSession(states))
      

  8.   


      不敢断言,但是估计是 Session.Timeout = 60;  里的问题,你去掉这句话试试
      

  9.   

    去掉Session.Timeout = 60;
    还是报
    行 34:         //else
    行 35:         //{
    行 36:            string uName = ((vip)(Session["uvip"])).vName;
    行 37:       //  }
    行 38:         //if (!ExistuvipSession(states))
     未将对象的应用设置到对象的实例化中。晕。纠结。
    如果实在不行的话,我换个方法做。
      

  10.   

    我没看出来你哪是异步调用了,不是需要用backgroundworker类么?还有你是不是点的慢了。超时了