COOKIES的
System.NullReferenceException: 未将对象引用设置到对象的实例未将对象引用设置到对象的实例。
说明: 执行当前 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 "];
这样都有错么,整了我一天的问题了,
------解决方案--------------------未将对象引用设置到对象的实例
意思是你的对象为空.如果是通过登录页面转过去的话,Cookies[ "Ly_Cookies "][ "Ly_UserName "] 已赋了值,因此可以正常显示.
如果是在地址栏里面直接输入需要验证页面,此时Cookies[ "Ly_Cookies "][ "Ly_UserName "] 未赋值,其值为空,因此会导致 "未将对象引用设置到对象的实例 "的错误.
------解决方案--------------------1.出错原因
Cookies[ "Ly_Cookies "][ "Ly_UserName "]为空,所以ToString()报错(未将对象引用设置到对象的实例)
2.解决方法
每个页面登陆前判断Cookies[ "Ly_Cookies "][ "Ly_UserName "]是否为空,若为空则返回登陆页面,你也可以写一个类,重写OnLoad方法(验证Cookies[ "Ly_Cookies "][ "Ly_UserName "]是否为空,空则返回登陆页面),并且每个页面继承这个类