日期:2014-05-18  浏览次数:20542 次

这样的session怎么样写好
我在login.aspx
中让用户输入用户名和密码,在login.aspx.cs中判断,
如果成功的话,取名字的值存在session中,
Session.Add("cname", myDT.Rows[0]["name"]);
login.aspx应用了母版页。
现在要在母版页上显示session["cname"]的内容,在main.master.cs中
 protected void Page_Load(object sender, EventArgs e)
  {
  if (HttpContext.Current.Session["cname"].ToString() != "" || HttpContext.Current.Session["cname"].ToString() != null)

  { Label1.Text = HttpContext.Current.Session["cname"].ToString(); }
  }

这样运行出现下列错误


未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。



要实现上述session功能,得怎么弄好??/




------解决方案--------------------
首先你这个逻辑不对,要修改为&&
if(Session["cname"]!=null)
{
Label1.Text = Session["cname"].ToString();
}
------解决方案--------------------
没有登陆的时候.session["cname"]是null的

 if (HttpContext.Current.Session["cname"] != null && !string.IsNullOrEmpty(HttpContext.Current.Session["cname"].ToString())) 

{ Label1.Text = HttpContext.Current.Session["cname"].ToString(); }