public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";
            string loginname = context.Request["loginname"].ToString().Trim();
            string password = context.Request["pwd"].ToString().Trim();
            int id= Convert.ToInt32(context.Request["logintype"]);
            UserInfo user;
            UserManager um = new UserManager();
            if (um.ValidateUser(loginname, password, id,out user))
            {
                if (user.Username.Length > 0)
                {
                    HttpContext.Current.Session["userInfo"]=user;
                    //context.Session.Add("user", user);

                    context.Response.Write("true");
                }
                
            }
            else
            {
                context.Response.Write("false");
            }
        }

解决方案 »

  1.   

    try
    {
        HttpContext.Current.Session["userInfo"] = user;
    }
    catch
    {
        context.Session.Add("userInfo", user);
    }
      

  2.   

      ToString()前进行一下非null判断。。
      

  3.   

    既然user.Username.Length > 0能通过了,user应该不为null了吧。
    HttpContext.Current为空?
      

  4.   

    不是已经有参数HttpContext context,这个应该才是当前的会话请求吧
      

  5.   

    UserInfo user;
    后面没有new UserInfo。 对象为空,报错理所当然。
      

  6.   

    可以if(HttpContext.Current.Session["userInfo"]!=null)

        // 不为空
    }的