Вернувшись в ASP.NET Core 1, аутентификация будет вручную подключена к конвейеру запросов при его конфигурации: для пользовательского процесса аутентификации вы просто определите AuthenticationMiddleware
и подключите его к вашему конвейеру в точке, где происходит аутентификация. должно было случиться.
В ASP.NET Core 2 больше нет AuthenticationMiddleware
, и вы должны сделать UseAuthentication()
в некоторой точке конвейера, где обязательно должна выполняться вся аутентификация.
Здесь задокументирована разница: https://docs.microsoft.com/en-us/aspnet/core/security/authorization/limitingidentitybyscheme
Чтобы различать разные способы аутентификации, существуют политики, идентифицируемые по магическим строкам (множество магических строк в ASP.NET Core).
Затем мне говорят, что я могу выбрать желаемую схему с атрибутами на моем контроллере, но я не использую MVC вообще в рассматриваемом сценарии. Так как мне указать для конкретной ветки конвейера:
app.UseWhen(c => ..., app2 =>
{
// auth number 1 desired
...
});
app.UseWhen(c => ..., app2 =>
{
// auth number 2 desired
...
});
И даже в MVC аутентификация происходит до маршрутизации, так как информация о том, какую схему использовать, возможно, будет доступна в точке UseAuthentication()
в конвейере?