检查 API 控制器方法是否具有授权属性
Check if API controller method has authorize attribute
我正在尝试确定 API 方法是否具有授权属性,虽然我可以很容易地发现使用 MethodInfo
,但我似乎无法找到一种方法来处理 [=] 时的检查13=] 在控制器级别设置。
基本上我需要知道控制器或方法是否具有 Authorize
属性。
public class SecurityRequirementsOperationFilter : IOperationFilter
{
public void Apply(Operation operation, OperationFilterContext context)
{
var hasAuthorizeAttribute = context.MethodInfo
.GetCustomAttributes(true)
.OfType<AuthorizeAttribute>()
.Any();
if (!hasAuthorizeAttribute)
{
operation.Security = new List<IDictionary<string, IEnumerable<string>>>();
}
}
}
我设法找到一种方法来查找方法是否具有控制器或方法 Authorize
属性。
var hasAuthAttribute = context.MethodInfo.DeclaringType.GetCustomAttributes(true)
.Union(context.MethodInfo.GetCustomAttributes(true))
.OfType<AuthorizeAttribute>()
.Any();
我正在尝试确定 API 方法是否具有授权属性,虽然我可以很容易地发现使用 MethodInfo
,但我似乎无法找到一种方法来处理 [=] 时的检查13=] 在控制器级别设置。
基本上我需要知道控制器或方法是否具有 Authorize
属性。
public class SecurityRequirementsOperationFilter : IOperationFilter
{
public void Apply(Operation operation, OperationFilterContext context)
{
var hasAuthorizeAttribute = context.MethodInfo
.GetCustomAttributes(true)
.OfType<AuthorizeAttribute>()
.Any();
if (!hasAuthorizeAttribute)
{
operation.Security = new List<IDictionary<string, IEnumerable<string>>>();
}
}
}
我设法找到一种方法来查找方法是否具有控制器或方法 Authorize
属性。
var hasAuthAttribute = context.MethodInfo.DeclaringType.GetCustomAttributes(true)
.Union(context.MethodInfo.GetCustomAttributes(true))
.OfType<AuthorizeAttribute>()
.Any();