【发布时间】:2020-04-17 09:30:56
【问题描述】:
JwtBearer 的 .Net Core Api 如下所示:
_services
.AddJwtBearer(options =>
{
options.Events.OnAuthenticationFailed += MyMethod;
});
它实际上只是一个函数。现在我想使用服务配置中的ILogger,以便在记录失败的身份验证请求时使用。问题是我此时没有ILogger 的实例,而且我也没有看到获得它或使用工厂方法的好方法,因为我也没有ServiceProvider .
我已经这样解决了:
var loggerForAuthentication = _services.BuildServiceProvider().GetService<ILogger>();
这将构建整个 DI 容器以返回我的 ILogger。这种方法有一些缺点,例如为这个确切的服务构建器生成它自己的单例,看起来也不正确。
还有其他方法吗?
【问题讨论】:
标签: c# asp.net-core logging dependency-injection jwt