Перенаправление при авторизации

Я подготовил такую ​​аутентификацию в своем 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, чтобы он перенаправлял пользователя на правильный контроллер и метод (по-прежнему с использованием лучших практик)? Несколько советов по терминам, которые нужно искать, было бы здорово - я не ленив, просто осторожен и не уверен в том, что хорошо, а что - продукция других запутанных блоггеров.


person DonkeyBanana    schedule 28.01.2019    source источник
comment
вы можете переопределить HandleUnauthorizedRequest и перенаправить, тогда вы должны отметить действия контроллера для использования   -  person Arunprasanth K V    schedule 28.01.2019
comment
@ArunprasanthKV Хорошо, поэтому я еще немного погуглил, основываясь на вашем предложение о HandleUnauthorizedRequestand, но я не могу переопределить этот метод, похоже, он не существует. Я гуглил как его переопределить, но ответ на этот вопрос не даже не используйте указанный метод. Я снова в состоянии крайне неуверенно. Пожалуйста, порекомендуйте...   -  person DonkeyBanana    schedule 30.01.2019
comment
просто взгляните на этот заголовок stackoverflow.com/questions/10928277/   -  person Arunprasanth K V    schedule 30.01.2019