4

我有一个自定义授权过滤器,它具有构造函数注入的依赖项。

public class CustomAuthorizationFilter : IAuthorizationFilter

还有一个只保存数据的通用属性。

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
public class CustomAuthorizeAttribute : FilterAttribute

我从这里“借来”的一种方法,我真的很享受这种分离。我了解过滤器如何运行并“获取”属性,但我在接线时遗漏了一些东西。

如何将属性“绑定”到过滤器,以便在属性存在时调用过滤器?Ninject 似乎对此语法 但我还没有找到 Autofac 中的等价物

如果这是我需要在 Autofac 之外的应用程序中设置的东西,那也很好。

谢谢!乔什

4

1 回答 1

1

您可以使用相同的类作为过滤器和属性。但是您也可以定义另一个属性并检查它是否已定义。

然后你必须注册你的过滤器/属性类: inside Global.asax,就像filters.Add(new HandleErrorAttribute());.

在 filterMethods 内部(在您的情况下,应该是 OnAuthorize),您可以检查是否有其他属性IsDefined或是否定义了某些属性。

于 2011-12-21T22:12:38.093 回答