未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
行 14:     protected void Page_Load(object sender, EventArgs e)
行 15:     {
行 16:         string ck = Request.Cookies["Ly_Cookies"]["Ly_UserName"].ToString();
行 17:         if (ck == null)
行 18:         {
 源文件: e:\自写.NET\xingerxd\Admin_Index.aspx.cs    行: 16 堆栈跟踪: 
[NullReferenceException: 未将对象引用设置到对象的实例。]
   Admin_Index.Page_Load(Object sender, EventArgs e) in e:\自写.NET\xingerxd\Admin_Index.aspx.cs:16
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +47
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061 以上是错误的代码
Response.Cookies["Ly_Cookies"]["Ly_UserName"] = UserName.Trim();
Response.Cookies["Ly_Cookies"]["Ly_UserPurview"] = dr["UserPurview"].ToString();这个是登录成功后写入的COOKIES,包括用户名和权限如果是通过登录页面转过去的话,那么就能正常显示
但是如果是在地址栏里面直接输入需要验证页面的话,比如admin_index.aspx
那么就会出现错误,错误以上,
 string AdminName = Request.Cookies["Ly_Cookies"]["Ly_UserName"];这样都有错么,整了我一天的问题了,

解决方案 »

  1.   


    if(Request.Cookies["Ly_Cookies"]["Ly_UserName"] == null)
    {
           return;
    }
    //你的代码
      

  2.   

    未将对象引用设置到对象的实例
    意思是你的对象为空.如果是通过登录页面转过去的话,Cookies["Ly_Cookies"]["Ly_UserName"] 已赋了值,因此可以正常显示.
    如果是在地址栏里面直接输入需要验证页面,此时Cookies["Ly_Cookies"]["Ly_UserName"] 未赋值,其值为空,因此会导致"未将对象引用设置到对象的实例"的错误.
      

  3.   

    1.出错原因
    Cookies["Ly_Cookies"]["Ly_UserName"]为空,所以ToString()报错(未将对象引用设置到对象的实例)
    2.解决方法
      每个页面登陆前判断Cookies["Ly_Cookies"]["Ly_UserName"]是否为空,若为空则返回登陆页面,你也可以写一个类,重写OnLoad方法(验证Cookies["Ly_Cookies"]["Ly_UserName"]是否为空,空则返回登陆页面),并且每个页面继承这个类