用户登录后,将设置会话。我想检查所有控制器中的用户会话(不是全部,而是需要登录用户的控制器)。在webforms中,我们可以在page_load中或使用基类来完成。 asp mvc中推荐的方法是什么? (我看到使用基本控制器是个坏主意)
答案 0 :(得分:1)
您可以使用base controller
继承创建一个控制器(在此检查会话),并将此控制器引用到您需要的控制器中。
BaseController:
public class BaseController : Controller
{
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
//check Session here
}
}
DerivedController:
public class ABCController : BaseController
{
//Your code
}
答案 1 :(得分:1)
有两种方法可以做到这一点。
您可以创建一个继承自AuthorizeAttribute的自定义授权属性,并在一个位置执行所有会话和授权代码,或者
您可以创建自己的操作过滤器,执行必要的会话检查并将这两个属性附加到操作/控制器。
这取决于您是否要求这些功能中的一个或另一个独立运行,如果是这样,请选择后一个建议。