当一个动作过滤器被调用时,有没有办法确定这个调用是来自控制器级别还是动作级别应用的属性?
我需要为我的所有操作方法运行 myAttribute。但是,Delete 操作方法专门使用过滤器进行了注释,因此 myAttribute 被调用了两次。在这种情况下,我需要来自 Controller 的调用不做任何事情或可能做不同的事情。
无论如何都可以在不从控制器中实际删除 [myAttribute] 的情况下执行此操作吗?
[myAttribute]
public class HomeController
{
public ViewResult Index()
{
}
public ViewResult View()
{
}
public ViewResult Edit()
{
}
[myAttribute]
public ViewResult Delete()
{
}
}
我正在使用这些操作过滤器来授权用户。用户可以访问控制器,但如果某个方法特别需要权限(通过在其上方设置 [myAttribute]),那么控制器级别的访问权限是不够的,应该在用户权限中明确提及该操作。