在控制器或方法中添加 AllowAnonymousAttribute 属性,以允许匿名访问。
[AllowAnonymous] public IActionResult MyAction() { return View(); }
在 ActionExecutingContext 中检查当前 Action 是否具有 AllowAnonymousAttribute 属性。
public class MyActionFilter : IActionFilter { public void OnActionExecuting(ActionExecutingContext context) { var hasAllowAnonymousAttribute = context.ActionDescriptor.EndpointMetadata .Any(em => em.GetType() == typeof(AllowAnonymousAttribute));
if (hasAllowAnonymousAttribute)
{
// action 具有 AllowAnonymousAttribute 属性
}
else
{
// action 不具有 AllowAnonymousAttribute 属性
}
}
public void OnActionExecuted(ActionExecutedContext context)
{
// ...
}
}
以上代码演示了如何使用 ActionExecutingContext 检查 AllowAnonymousAttribute 属性。在 ActionExecutingContext 中,我们可以访问当前 Action 的 EndpointMetadata 属性,并在其中查找 AllowAnonymousAttribute。如果当前 Action 具有 AllowAnonymousAttribute,则 hasAllowAnonymousAttribute 变量将为 true,否则为 false。