覆盖 OnActionExecuting 和 .ashx 文件上传

发布于 2024-10-04 18:48:17 字数 638 浏览 3 评论 0原文

我有一个使用第三方上传 .ashx 页面的 MVC 项目。我还对 OnActionExecuting(ActionExecutingContext filterContext) 进行了以下覆盖:

public override void OnActionExecuting(ActionExecutingContext filterContext) {
   SessionContext context = (SessionContext)filterContext.HttpContext.Session[SessionConstants.SessionContext];

   if (context == null || context.Ticket == null) {
       filterContext.Result = new RedirectResult(TimeoutRedirectUrl);
       return;
   }

   base.OnActionExecuting(filterContext);
}

这是为了确保用户在访问 MVC 页面时仍然处于登录状态。但是,在用户上传文件后,“上下文”似乎为空,然后 OnActionExecuting() 会重定向用户。

为什么用户上传文件后不再有上下文?我希望他们仍然处于登录状态。

I have a MVC project that uses a 3rd party upload .ashx page. I also have the following override for OnActionExecuting(ActionExecutingContext filterContext):

public override void OnActionExecuting(ActionExecutingContext filterContext) {
   SessionContext context = (SessionContext)filterContext.HttpContext.Session[SessionConstants.SessionContext];

   if (context == null || context.Ticket == null) {
       filterContext.Result = new RedirectResult(TimeoutRedirectUrl);
       return;
   }

   base.OnActionExecuting(filterContext);
}

This is here to make sure users are still logged in when they visit MVC pages. However, after a user uploads a file it looks like the "context" is null and then OnActionExecuting() redirects the user.

Why would there no longer be a context after a user uploads a file? I want them to still be logged in.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不必了 2024-10-11 18:48:17

您是否尝试过使用控制器操作方法而不是通用处理程序来上传文件?处理程序的级别非常低,默认情况下无法访问 cookie、会话等。

Have you tried using a controller action method to upload the file instead of the generic handler? Handlers are very low level and by default have no access to cookies, session, etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文