【发布时间】:2021-06-23 09:23:39
【问题描述】:
我使用 SessionCheck 类进入整个控制器来验证用户
public class SessionCheck : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpSessionStateBase session = filterContext.HttpContext.Session;
if (session != null && session["LoggedInUser"] == null)
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary {
{ "Controller", "Login" },
{ "Action", "Index" }
});
}
}
}
如果用户未验证重定向到登录控制器
在登录控制器中,我填写了这个会话属性:
Session["LoggedInUser"] = user;
然后重定向到索引/主控制器
在家庭控制器中:
[SessionCheck]
public class HomeController : Controller
{ .... }
我调试代码,登录控制器中的 Session["LoggedInUser"] 动作填写成功,
然后重定向到主控制器中的操作索引,但是当我在 OnActionExecuting
session["LoggedInUser"] 值为 null。
在我的本地 PC 中找不到此错误,并且代码工作正常,
但会导致 Windows 服务器出现问题,并且会话值在 OnActionExecuting 中为空
我在服务器端安装了 Visual Studio 进行调试,结果正如我解释的那样。
我电脑上的 IIS 版本 (10.0.19041.320)
服务器上的 IIS 版本 (10.0.17763.1)
应用程序使用 .Net Framework 4.8
这个问题从几天到现在出现了
在此之前代码运行良好
为什么会出现这个问题?
【问题讨论】:
标签: c# asp.net-mvc