我有一个基本控制器,其属性如下:
public class BaseController : Controller
{
public User CurrentUser {get;set;}
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
// if session cookie found, set User object here
}
}
现在我想创建一个操作文件管理器,我可以在控制器或操作上设置我想要执行的操作,例如:
if (User.IsAdmin)
{
}
else
{
// redirect to login or some page
}
所以这个过滤器@AdminOnly
我可以放置一个控制器或操作,这将确保只有设置了 IsAdmin 标志的用户才能查看该操作。
过滤器是否可以看到当前正在执行的控制器?
你不能用吗
if (filterContext.Controller is BaseController)
{
BaseController ctr = (BaseController)filterContext.Controller;
if (ctr.User.IsAdmin)
{....}
}
Link http://msdn.microsoft.com/en-us/library/system.web.mvc.actionexecutingcontext%28v=vs.98%29.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)