Система аутентификации в ASP.NET Core 2 поддерживает это изначально, используя свойство EventsType
параметров схемы аутентификации:
services.AddTransient<MyJwtBearerEvents>();
services.AddAuthentication()
.AddJwtBearer(options =>
{
options.EventsType = typeof(MyJwtBearerEvents);
});
Если это свойство установлено, тоЭкземпляр событий будет разрешен, когда схема аутентификации инициализируется в начале запроса.
Кроме этого, обратите внимание, что вы также можете получить доступ к экземпляру HttpContext
, который передается как часть контекстов события,и используйте шаблон поиска сервисов для разрешения сервисов внутри ваших обработчиков событий.Хотя использование сервисного локатора, как правило, не лучшая идея, в этом случае он может дать вам немного больше гибкости, если вам требуются некоторые зависимости только для определенного типа события.