Tag: asp.net mvc filters

IFilter提供者和关注点分离

我有一种情况需要在动作filter中注入一些依赖项,即我的自定义授权属性中的自定义授权提供程序。 我偶然发现了许多人和post,他们说我们应该将“属性元数据”与“行为”分开。 这是有道理的,并且还有一个事实是filter属性没有通过’DependencyResolver’实例化,因此很难注入依赖项。 所以我对我的代码进行了一些重构,我想知道我是否正确(我使用Castle Windsor作为DI框架)。 首先,我剥离了我的属性,只包含我需要的原始数据 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] public class MyAuthorizeAttribute : Attribute { public string Code { get; set; } } 我创建了一个自定义授权filter,其中包含确定当前用户是否具有适当授权的逻辑 public class MyAuthorizationFilter : IAuthorizationFilter { private IAuthorizationProvider _authorizationProvider; private string _code; public MyAuthorizationFilter(IAuthorizationProvider authorizationProvider, string code) { Contract.Requires(authorizationProvider != null); Contract.Requires(!string.IsNullOrWhiteSpace(code)); _authorizationProvider = authorizationProvider; _code = code; } public void […]