AllowAnonymousAttribute

AllowAnonymousAttribute

System.Web.Mvc.ActionDescriptor 具有 IsDefined 方法,该方法有助于确定是否为此成员定义了一个或多个指定属性类型的实例。

System.Web.Http.Controllers.HttpActionDescriptor 没有此方法。

如何使用HttpActionDescriptor检查 AllowAnonymousAttribute

最佳答案

我发现。我可以使用 GetCustomAttributes 方法。例如(来自AuthorizeAttribute实现):

private static bool SkipAuthorization(HttpActionContext actionContext)
{
  if (!Enumerable.Any<AllowAnonymousAttribute>((IEnumerable<AllowAnonymousAttribute>) actionContext.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute>()))
    return Enumerable.Any<AllowAnonymousAttribute>((IEnumerable<AllowAnonymousAttribute>) actionContext.ControllerContext.ControllerDescriptor.GetCustomAttributes<AllowAnonymousAttribute>());
  else
    return true;
}

关于c# - 在Web API中检查AllowAnonymousAttribute,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24778953/

10-11 07:28