如何在 asp.net web api 中使用 castle windsor 在身份验证过滤器属性中实现依赖注入?

How to implement dependency injection in an authentication filter attribute with castle windsor in asp.net web api?

我需要调用一个服务来验证随请求传递的 headers。我正在使用温莎依赖注入,但似乎无法将依赖注入 attributes/filters?

我在互联网上搜索了很多次,但还没有找到明确的工作解决方案。虽然这在大多数应用程序中似乎非常重要,但我想知道您如何解决这个问题?

您需要在启动应用程序时执行此操作

我正在使用 Simple Injector 但不管你使用什么库

首先注册你的过滤器属性

 container.Register<JwtAuthenticationAttribute>(Lifestyle.Singleton)

然后在您的 startup.cs 文件中,您可以执行以下操作

 config.Filters.Add(container.GetInstance<JwtAuthenticationAttribute>());

在此上下文中的容器将是您的 Castle Windosor 初始化和服务注册的容器