我正在使用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或排除Authorization
然后验证将绕过策略。
我现在使用IAuthorizationFilter解决,
并使用
JwtSecurityTokenHandler处理程序=新的JwtSecurityTokenHandler();
handler.ValidateToken(tokenValue,tokenValidationParameters,outvar validatedToken);
但当令牌无效时,JwtSecurityTokenHandler.ValidateToken将获得异常。
即使此令牌已过期也将获得异常。
据我所知,异常将消耗更多的服务器资源。
有人可以提供一种完美的解决方案吗?