我有一个 basecontroller,其属性如下:
public class BaseController : Controller
{
public User CurrentUser {get;set;}
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
// if session cookie found, set User object here
}
}
现在我想创建一个 Action 文件管理器,我可以在 Controller 或 Action 上设置我想做的事情,比如:
if (User.IsAdmin)
{
}
else
{
// redirect to login or some page
}
所以这个过滤器 @AdminOnly
我可以放在 Controller 或操作上,这将确保只有设置了 IsAdmin 标志的用户才能查看操作。
过滤器是否可以看到当前正在执行的 Controller ?
最佳答案
你不能用吗
if (filterContext.Controller is BaseController)
{
BaseController ctr = (BaseController)filterContext.Controller;
if (ctr.User.IsAdmin)
{....}
}
关于c# - 过滤器可以从我的 BaseController 访问属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26023954/