我正在尝试从.NET Core 1.1迁移到2.0,并且无法迁移JWT令牌配置。我有一个提供JWTBearerOptions的接口/类,在.NET Core 2.0中我无法访问我的DI Graph对象(因为在2.0中,JWT是在 ConfigureServices()函数中配置的)。我想保持我的Startup.cs文件清除配置JWT的许多代码行。
有没有办法将JWTBearerOptions对象创建委托给通过DI创建的提供程序?我想要类似下面的内容:
public virtual void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication()
.AddJwtBearer(MyAuthicationScheme.JwtAuthName, options =>
{
myInjectedInstance.SetJwtBearOptions(options, Configuration);
})
}
答案 0 :(得分:1)
在microsoft的文档中找到答案。在ConfigureServices调用期间,无法访问DI对象:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/index?tabs=basicconfiguration#additional-notes
答案 1 :(得分:0)
@flodin 我为AddJwtBearer遇到了同样的问题,并且有一种笨拙的方法可以通过插入OnMessageRecieved事件来访问HttpContext
else:
error_message = clean_html(video_info.get('reason', [None])[0])
print("title=", video_info['title'])
print("video_id=", video_info['video_id'])
print("reason=", video_info['reason'])
if not error_message:
error_message = extract_unavailable_message()
if error_message:
raise ExtractorError(error_message, expected=True)
raise ExtractorError('no conn, hlsvp, hlsManifestUrl or url_encoded_fmt_stream_map information found in video info')