我有一个网站对'“authLevel”执行会话检查,以显示(或不显示)管理功能的链接。
支票:
@if (Session["authLevel"].ToString() == "Admin")
{
<li>@Html.ActionLink("Admin", "User_Maintenance", "Admin")</li>
}
这在其他浏览器(chrome,firefox,opera)中运行良好,但是我第一次在IE中启动应用程序并尝试登录(这会创建会话)时,它会给我一个空引用错误:
System.NullReferenceException {"Object reference not set to an instance of an object."}
我在每个页面的控制器中设置会话。
if (User.Identity.IsAuthenticated)
{
string userName = User.Identity.GetUserName();
string str = User.Identity.GetUserId();
User _user = Testing.Models.User.GetById(str);
Session["empUserId"] = _user.Id;
Session["displayName"] = _user.UserName;
if(_user.isAdmin) {
Session["authLevel"] = "Admin";
}
else
{
Session["authLevel"] = "User";
}
}
我没有在任何其他浏览器中出现此错误,但此应用程序在所有浏览器中无缝运行非常重要。