Это documentation describes в части, как использовать более одной схемы аутентификации:Как я могу присвоить соответствующий идентификатор носителя и Cookie в ASP.NET с несколькими схемами авторизации?
В некоторых случаях, таких как Single Page Applications можно в конечном итоге с несколькими методами аутентификации. Например, ваше приложение может использовать аутентификацию на основе файлов cookie для входа в систему и проверки подлинности на предъявителя для запросов JavaScript. В некоторых случаях у вас может быть несколько экземпляров промежуточного программного обеспечения для проверки подлинности. Например, два промежуточных файла cookie, в которых один содержит базовый идентификатор, и один создается при многофакторной аутентификации, потому что пользователь запросил операцию, требующую дополнительной безопасности.
Пример:
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
AuthenticationScheme = "Cookie",
LoginPath = new PathString("/Account/Unauthorized/"),
AccessDeniedPath = new PathString("/Account/Forbidden/"),
AutomaticAuthenticate = false
});
app.UseBearerAuthentication(options =>
{
options.AuthenticationScheme = "Bearer";
options.AutomaticAuthenticate = false;
});
Однако это только описывает, как использовать Cookie или авторизацию Bearer. Неясно, действуют ли какие-либо другие комбинации или как правильно выдавать на клиентский носитель или файлы cookie.
Как это можно сделать?
Это просто пример. Вы можете создать свое собственное промежуточное программное обеспечение, добавить его в список выше и использовать в любой комбинации, например. один контроллер может разрешить аутентификацию с использованием любой из трех схем, другой может разрешить только один из них. – Vitaly
Также вы можете добавить, например, промежуточное ПО «Cookie» дважды с другим именем AuthenticationScheme и другими параметрами – Vitaly
Почему вы не добавляете «средний» Identity Server 4,0? Я сделал это, и это спасло мне много времени, а также ответ на большинство ваших вопросов с образцами и шаблонами: http://docs.identityserver.io – Raffaeu