После переноса моего веб-сайта с. NET Core 2.2 на 3.1.1 мои конечные точки API внезапно начали пытаться перенаправить мой запрос API на страницу входа по умолчанию (/Account/Login?ReturnUrl=
, которой у меня даже нет мои маршруты).
Мой API-интерфейс использует схему аутентификации канала-носителя JWT со схемой вызова JWT, но перенаправление все же произошло.
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
Я наконец нашел решение проблемы, но Я понятия не имею, почему это действительно помогло.
Первоначально мои службы были установлены как:
services
.AddIdentity<IdentityUser, IdentityRole>()
.AddSignInManager()
.AddEntityFrameworkStores<CleWebToolsIdentityDbContext>();
Но это сделало перенаправление.
То, что наконец решило мою проблему, было установив их в:
services
.AddIdentityCore<IdentityUser>()
.AddRoles<IdentityRole>()
.AddSignInManager()
.AddEntityFrameworkStores<CleWebToolsIdentityDbContext>();
Может кто-нибудь сказать мне, что здесь происходит?
Как метод AddIdentity вызывает перенаправление, даже если схема вызова должна быть JWT?