Изучение шаблона в обозревателе решений¶
- Пользовательский интерфейс по умолчанию содержится в Areas/Identity — там он создаётся пакетом Microsoft.AspNetCore.Identity.UI;
Области
Области используются для группировки страниц Razor Pages в отдельные иерархии для организационных целей. Подробнее
- Шаблон включает в себя
DbContextот EF Core и миграции, чтобы сконфигурировать БД подробнее; - Папка Pages идентична шаблону без аутентификации, с дополнительным представлением _LoginPartial. В нем можно увидеть, как маршрутизация работает с областями, объединяя путь к странице Razor с параметром маршрута
{area]с помощью тег-хелперов:
Также добавилась настройка в ConfigureServices:
public void ConfigureServices(IServiceCollection services)
{
var connectionString = Configuration.GetConnectionString("DefaultConnection");
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(connectionString));
services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddRazorPages();
}
Здесь метод расширения
AddDefaultIdentity() выполняет несколько функций:
- добавляет основные сервисы ASP.NET Core Identity;
- настраивает тип пользователя приложения как
IdentityUser. При необходимости можно расширить этот тип; - добавляет страницы Razor Pages пользовательского интерфейса по умолчанию для регистрации, входа и управления пользователями;
- настраивает поставщиков токенов для создания токенов подтверждения по электронной почте.
В файле Startup добавляется строчка в методе Configure: app.UseAuthentication(). Мы добавляем компонент AuthenticationMiddleware, как показано на рисунке:

Очень важно расположение этого компонента — его нужно размещать после метода UseRouting() и перед методом UseAuthorization() и UseEndpoints().
public static void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endponts => endpoints.MapRazorPages());
}
Последнее обновление :
4 мая 2023 г.
Дата создания : 5 октября 2022 г.
Дата создания : 5 октября 2022 г.
