Всем привет.
У меня есть проект .net core 2.1 с ангуляром. Я мигрировал на .net core 3.1, изменений было по минимуму, но авторизация больше не работает.
Проблема явно в классе Startup.cs, но я уже продолжительное время бьюсь бесцельно и взываю к помощи. User.Identity.IsAuthenticated теперь всегда false
В ConfigureServices у меня такое:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie();
services.AddAuthorization(); // добавил после миграции, не помогло
services.AddMvc();
В Configure
app.UseRouting();
app.UseCookiePolicy(); // добавил после миграции, не помогло
app.UseAuthentication(); // после роутинга, но до эндпоинтов
app.UseAuthorization(); // после роутинга, но до эндпоинтов
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<ChatHub>("/chat");
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller}/{action=Index}/{id?}");
});
На всякий случай привожу код SignIn, но он был рабочий, тут ничего не трогал
var claims = new List<Claim>
{
new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
new Claim(ClaimTypes.Name, user.UserName)
};
foreach (var role in user.Roles)
{
claims.Add(new Claim(ClaimTypes.Role, ((int)role).ToString()));
}
var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
await HttpContext.SignInAsync(
CookieAuthenticationDefaults.AuthenticationScheme,
new ClaimsPrincipal(identity));
Так же в инструментах разработчика хрома на вкладке Application Cookies пусто