Как игнорировать пользователя не предоставили токен.ASP.NET CORE Авторизация - PullRequest
0 голосов
/ 16 апреля 2019

Я использую авторизацию 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 получит исключение, когда токен недействителен.
Даже этот токен истек, тоже получит исключение.
Исключение приведет к увеличению ресурсов сервера, насколько я знаю.

Может ли кто-нибудь предложить одно идеальное решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...