Я должен что-то упустить. Обратите внимание, что я не использую личность. Я следовал за частью конфигурации этой страницы
В моем файле startup.cs:
// in public void ConfigureServices(IServiceCollection services)
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = new PathString("/account/login/");
options.AccessDeniedPath = new PathString("/account/forbidden/");
options.SlidingExpiration = true;
options.ExpireTimeSpan = TimeSpan.FromHours(336);
});
// in public void Configure(IApplicationBuilder app, IHostingEnvironment env)
app.UseAuthentication();
Тогда у меня есть логика логина, которая заканчивается на
await _httpContextAccessor.HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal,
new AuthenticationProperties {IsPersistent = true});
Это отлично работает и создает нужные файлы cookie.
Чего я не понимаю, так это как обеспечить аутентификацию для определенных конечных точек?
Ранее я бы добавил [AllowAnonymous] в конечную точку, чтобы сказать, что все в порядке, если вы не прошли аутентификацию. Но здесь не видно, вошел я или нет.
1) Как лучше всего настроить мое приложение, чтобы вы могли проходить проверку подлинности для доступа к ним?
2) Как узнать, аутентифицирован ли пользователь? (из контроллера)
3) Я знаю, что мог бы реализовать все это через промежуточное ПО, но я был бы удивлен, что нет встроенного способа сделать это. Я не прав?