.NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
2023-12-18 18:35:35
public Task InvokeAsync(HttpContext context)
{
// 获取终点路由特性
var endpointFeature = context.Features.Get<IEndpointFeature>();
// 获取是否定义了特性
var attribute = endpointFeature?.Endpoint?.Metadata?.GetMetadata<AllowAnonymousAttribute>();
if (attribute != null)
{
logger.LogInformation($"{context.Request.Path} 无需授权");
}
else
{
logger.LogInformation($"{context.Request.Path} 需要授权");
}
// 调用下一个中间件
return _next(context);
}
注意事项
要想上面操作有效,也就是不为?null
,需要满足以下条件,否则?endpointFeature
?返回?null
。
- 启用端点路由?
AddControllers()
?而不是?AddMvc()
UseRouting()
?和?UseEndpoints()
?之间调用你的中间件
?
?
文章来源:https://blog.csdn.net/lwpoor123/article/details/135067633
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!