我们正在使用 Autofac 的 IAutofacAuthorizationFilter 构建授权过滤器,我们已经在启动时使用我们的基本控制器注册了这个过滤器。所有控制器都继承自我们的基本控制器。我们在执行过程中需要确定目标控制器是否已向 CustomAuthFilter 注册。我尝试使用反射来检查控制器是否注册了CustomAuthFilter,我无法获得。他们是否有更好的方法来检查控制器是否已向 CustomAuthFilter 注册。
builder.RegisterType<CustomAuthFilter>()
.Named<IAutofacAuthorizationFilter>("CustomAuthFilter")
.WithParameters(new[]
{
new ResolvedParameter((pi, ctx) => pi.ParameterType == typeof(Logger),
(pi, ctx) => ctx.Resolve<Logger>()),
new ResolvedParameter((pi, ctx) => pi.ParameterType == typeof(Reader),
(pi, ctx) => ctx.Resolve<Reader>())
}
).AsWebApiAuthorizationFilterFor<ControllerBaseAPI>()
.InstancePerRequest();