C# 未调用自定义属性

C# 未调用自定义属性,c#,attributes,C#,Attributes,好吧,我显然遗漏了一些东西,因为这应该很简单。我创建了以下属性: [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] public class EntitleAttribute : Attribute { public EntitleAttribute(string permissionName) { bool hasPermission = ... if (!ha

好吧,我显然遗漏了一些东西,因为这应该很简单。我创建了以下属性:

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class EntitleAttribute : Attribute
{

    public EntitleAttribute(string permissionName)
    {
        bool hasPermission = ...
        if (!hasPermission)
        {
            throw new HttpException(403, "Forbidden");
        }
    }

}
我把它放在一个方法上:

[Entitle("Access Application")]
public ActionResult MyMethod(...) { ... }

然而,它从未被调用。我遗漏了什么?

属性本身不会做任何事情。需要一些代码来查找属性并对其进行处理


根据代码示例,您希望在ASP.NETMVC应用程序中执行一些每次身份验证。在这种情况下,您应该从MVC的属性派生属性。如果您需要在MVC site-base甚至IMvcFilter中进行更一般的处理,请提供更多选项

属性本身不做任何事情。需要一些代码来查找属性并对其进行处理


根据代码示例,您希望在ASP.NETMVC应用程序中执行一些每次身份验证。在这种情况下,您应该从MVC的属性派生属性。如果您需要在MVC site-base甚至IMvcFilter中进行更一般的处理,请提供更多选项

属性本身不做任何事情——因此,如果没有查找属性的代码,很难解释为什么没有人查找/实例化属性。查看代码时,您可能会考虑从MVC的
FilterAttribute
?直接派生。回答这个问题,我会记下来的。谢谢另一种选择是查看实现中常用的属性。属性本身不做任何事情-因此,如果没有查找属性的代码,很难解释为什么没有人查找/实例化属性。查看代码时,您可能会考虑从MVC的
FilterAttribute
?直接派生。回答这个问题,我会记下来的。谢谢另一种选择是查看实现中常用的角色。因为我试图避免在代码中命名特定角色,所以使用ActionFilterAttribute正是我所需要的。因为我试图避免在代码中命名特定角色,所以使用ActionFilterAttribute正是我所需要的。