【发布时间】:2011-08-10 16:09:49
【问题描述】:
我想创建一个操作过滤器,仅由我的应用程序中的两个控制器使用...这个操作过滤器应该检查两个控制器内的每个操作。
这是我的操作过滤器代码
public class AllowedToEditEHRFilter : IActionFilter
{
IUnitOfWork unitOfWork;
IRepository<EHR> ehrRepository;
public AllowedToEditEHRFilter(IUnitOfWork dependency)
{
unitOfWork = dependency;
ehrRepository = unitOfWork.EHRs;
}
public void OnActionExecuting(ActionExecutingContext filterContext)
{
int ehrId;
if (int.TryParse(filterContext.HttpContext.Request.QueryString["ehrId"], out ehrId))
{
EHR ehr = ehrRepository.FindById(ehrId);
if (ehr.UserName != Membership.GetUser().UserName)
filterContext.Result = new ViewResult { ViewName = "InvalidOwner" };
}
}
public void OnActionExecuted(ActionExecutedContext filterContext)
{
}
}
现在我只是不确定如何配置 MVC 框架,以便在适当的时间触发操作过滤器。
我使用this 作为参考,但它应用了一个 GLOBAL 动作过滤器,它没有指定如何仅限于你的一些控制器。
请帮忙。
顺便说一句,我正在使用 NinjectMVC3
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 ninject action-filter