【问题标题】:cannot access session in OnActionExecuting无法访问 OnActionExecuting 中的会话
【发布时间】: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


    【解决方案1】:

    问题已解决。
    由服务器上的防病毒软件引起的问题,
    大约几天前更新到达防病毒软件
    当关闭防病毒问题解决时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-25
      • 1970-01-01
      • 2021-04-15
      • 2018-10-24
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      • 2014-01-07
      相关资源
      最近更新 更多