Я подготовил такую аутентификацию в своем Start.cs.
...
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(a => a.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = "beep",
ValidAudience = "bopp",
IssuerSigningKey = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes("SecurityKeyOfProperLength"))
});
...
Когда я украшаю один из методов в своем контроллере с помощью атрибута [Authorize], я больше не получаю представление, на которое он указывает. Вместо этого, как и ожидалось, я получаю 401 Unauthorized.
Следующим шагом, который я хочу сделать, является перенаправление на мою страницу входа, которая находится в контроллере Security и методе Login. Я не знаю, как добиться этого правильно без вопросов и ответов.
То, что я пытался сделать, это, конечно, погуглить, и я нашел много примеров того, как справиться с этим из SPA. В моем случае это старый добрый, простой MVC, отрендеренный на бэкенде, так что, насколько я понимаю, это неприменимо.
Я также видел, что могу переопределить OnChallenge, но это не рекомендуется.
Куча ссылок, относящихся к третьим сторонам, таким как IDS и тому подобное. В моем случае я хочу изучить процесс и контролировать его с помощью микроменеджмента, по крайней мере, пока. В основном потому, что я хочу изучить это глубже.
Как мне настроить мой AddAuthentication, чтобы он перенаправлял пользователя на правильный контроллер и метод (по-прежнему с использованием лучших практик)? Несколько советов по терминам, которые нужно искать, было бы здорово - я не ленив, просто осторожен и не уверен в том, что хорошо, а что - продукция других запутанных блоггеров.