public string DealShId
        {
            get { return Convert.ToString(ViewState["dealShId"]); }
            set { ViewState["dealShId"] = value; }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack) 
            {
                if (Session["Name"] != null) 
                {
                    DealShId = Convert.ToString((Session["Name"] as UserInfo).UserId);//得到登录用户的权限Id  ----未将对象引用设置到对象的实例。
                }
            }
        }

解决方案 »

  1.   

    UserInfo userinfo = Session["Name"] as UserInfo;
    然后看看userinfo中有没有值
      

  2.   

    我登录的时候写了UserInfo userInfo; 
                    Session["Name"] = userInfo; 为什么这里没值啊
      

  3.   

    UserInfo userInfo; 没有实例化
      

  4.   

    试试这个看看,是什么结果
    protected void Page_Load(object sender, EventArgs e)
      {
     if (Session["Name"] == null)  
      {
       // 
      }
    else
    {
    Label1.Text=Session["Name"].Tostring();}
      

  5.   

    有没有给userinfo.userId 赋值呢lz
      

  6.   

    你保存下面这个Session,保存的是一个UserInfo对象嘛??UserInfo info = xxx.GetSingleUserInfo();
    Session["Name"] = info;如果不是的话,比如说你保存的是一个值的话,像你这种写法肯定不对。
      

  7.   

    贴出来看一下,你是怎么保存这个Session值的。
      

  8.   


    protected void btnLogin_Click(object sender, EventArgs e)
            {
                string checkcode = Convert.ToString(Session["Code"]).ToLower();
                string userName =this.txtName.Text.Replace('<', '<').Replace('>', '>').Replace('\'', '′');
                //string userPwd = FormsAuthentication.HashPasswordForStoringInConfigFile(txtPwd.Text, "SHA1");
                string userPwd = this.txtPwd.Text.Trim();
                if (checkcode == txtSN.Text.ToString().Trim().ToLower()) 
                {
                    UserInfo userInfo;
                    if (UserInfoManager.Login(userName, userPwd,out userInfo)) 
                    {
                        
                        Session["Name"] = this.txtName.Text.Trim();
                        Session["User"] = userInfo;                    Session.Timeout = 1000;
                        System.Web.Security.FormsAuthentication.SetAuthCookie(userName, false);
                        LoginLog ll = new LoginLog
                        {
                            UserName = Convert.ToString(Session["Name"]),
                            LoginUserIp = Request.UserHostAddress,
                            LoginTime = DateTime.Now,
                        };
                        LoginLogManager.AddLoginLog(ll);
                        Response.Redirect("~/Sys/aaa.aspx");
                    }
                    else
                    {
                        ClientScript.RegisterStartupScript(GetType(), "", "<script>document.getElementById('msgDiv').style.display = 'block';document.getElementById('msgDiv').innerHTML = '用户名或密码错误'</script>");
                    }
                }
                else
                {
                    ClientScript.RegisterStartupScript(GetType(), "", "<script>document.getElementById('msgDiv').style.display = 'block';document.getElementById('msgDiv').innerHTML = '验证码错误'</script>");
                }
            }
      

  9.   

     Session["Name"] = this.txtName.Text.Trim();这个是我测试用的,可以不用管它
      

  10.   

    userInfo 本来就是空的,Session["User"] 数据没有设置对
      

  11.   

    测试用的,你屏蔽掉啊!你后面用的是Session["User"]啊
    DealShId = Convert.ToString((Session["User"] as UserInfo).UserId);
      

  12.   


    不好意思- -后面是这样用的DealShId = Convert.ToString((Session["User"] as UserInfo).UserId);
      

  13.   

    还有你要检查一下
    UserInfoManager.Login(userName, userPwd,out userInfo)
    这个方法返回的是bool值吧?那样的话你out的userInfo是没有值的啊后面肯定报错了。
      

  14.   


      UserInfo userInfo;
      if (UserInfoManager.Login(userName, userPwd,out userInfo)) 
      {
           //这里你应该使用一个方法返回一个登录用户的实体类对象
           UserInfo userInfo2 = xxx.GetSingleUserInfo();
          Session["User"] = userInfo;
      }
      

  15.   

    UserInfo userInfo;
      if (UserInfoManager.Login(userName, userPwd,out userInfo)) 
      {
      //这里你应该使用一个方法返回一个登录用户的实体类对象
      UserInfo userInfo2 = xxx.GetSingleUserInfo();
      Session["User"] = userInfo2;
      }