Я создаю сайт ASP.NET Core Razor (версия 2.2). Веб-сайт в основном состоит из двух областей: административной области для владельцев веб-сайта и пользовательской области. В структуре каталогов есть все страницы, обращенные к клиенту, в папке «Pages» и все страницы администрирования в подпапке «Admin».
Я хотел бы использовать проверку подлинности для рабочей или школьной учетной записи (один клиент) для всех страниц в папке «Admin». Это позволит администраторам использовать свои учетные записи Azure AD для входа в систему для управления веб-сайтом. Для всех остальных страниц я хочу использовать аутентификацию индивидуальных учетных записей пользователей с локальным хранилищем данных.
В настоящее время у меня работает аутентификация Azure AD, но возможно ли указать два разных механизма аутентификации на основе каталога, в котором страницы в разделе «Администратор» будут использовать Azure AD, а все остальные страницы будут использовать индивидуальные учетные записи)?
Существует аналогичный пост, в котором другие указали ответ, но это было более 4 лет назад и не использовало ASP.NET Core, поэтому, пожалуйста, не закрывайте его, указав на эту статью. ( Возможно ли использовать как Azure AD, так и индивидуальную учетную запись для аутентификации в одном приложении ASP.NET MVC? )
В настоящее время у меня есть только код AzureAD.
services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options => Configuration.Bind("AzureAd", options));
services.AddMvc(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);