Я использую авторизацию ASP.NET CORE 2.2.
Вот.
https://docs.microsoft.com/en-us/aspnet/core/security/authorization/resourcebased?view=aspnetcore-2.2
Я использую политику для проверки JWT, но мне нужно игнорировать проверку, если пользователь не предоставил токен.
Если пользователь предоставил токен, он будет подтвержден моей политикой.
Логика такая:
Если в заголовках есть токен, например Authorization = Bearer xxxx.xxx.xxx
Тогда политика проверит этот токен
Но если в заголовках нет содержимого об авторизации, например, Authorization = Beaer или исключить авторизацию
Тогда проверка будет обходить политику.
Сейчас я работаю с IAuthorizationFilter,
и подтвердите токен вручную с помощью
Обработчик JwtSecurityTokenHandler = новый JwtSecurityTokenHandler ();
handler.ValidateToken (tokenValue, tokenValidationParameters, out var validatedToken);
Но JwtSecurityTokenHandler.ValidateToken получит исключение, когда токен недействителен.
Даже этот токен истек, тоже получит исключение.
Исключение приведет к увеличению ресурсов сервера, насколько я знаю.
Может ли кто-нибудь предложить одно идеальное решение?