2

用户登录后,将设置一个会话。我想检查所有控制器中的用户会话(不是全部,而是需要登录用户的控制器)。在 webforms 中,我们可以在 page_load 中或使用基类来完成。asp mvc 中推荐的方法是什么?(我看到使用基本控制器是个坏主意)

4

2 回答 2

1

您可以使用继承创建一个控制器(在此检查会话)base controller并将此控制器引用到您所需的控制器中。

基础控制器:

 public class BaseController : Controller
    {
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //check Session here
        }
    }

派生控制器:

 public class ABCController : BaseController
    {
       //Your code
    }
于 2013-10-10T10:52:31.257 回答
1

有两种方法可以做到这一点。

您可以创建一个继承自 AuthorizeAttribute 的自定义授权属性,并在一个地方执行所有会话和授权代码,或者

您可以创建自己的操作过滤器来执行必要的会话检查并将这两个属性附加到操作/控制器。

这取决于您是否希望这些功能中的一个或另一个独立运行,如果是,请选择后一个建议。

于 2013-10-10T10:55:10.043 回答