从方法 AuthorizeCore 获取 return

Get return from method AuthorizeCore

我正在尝试使用声明授权并且我正在使用此数据注释

[ClaimsAuthorize(ClaimTypes.Role, "Admin")]
public void Test()
{
  ....
}

当我尝试访问 test 方法时,我被重定向到 AuthorizeCore 方法:

protected override bool AuthorizeCore(HttpContextBase httpContext)
{
      var identity = (ClaimsIdentity)httpContext.User.Identity;
      var claim = identity.Claims.FirstOrDefault(c => c.Type == ClaimType);
      if(claim != null)
      {
          return claim.Value == ClaimValue;
      }
          return false;
 }

当我的用户能够访问 test 方法时,这些方法工作正常,但当用户无法访问时,什么也没有发生。

我的问题是:当 return 为 false 时,如何获取方法 return? 谢谢

感谢@trailmax 我可以解决我的问题:

public class ClaimsAuthorizeAttribute : AuthorizeAttribute
{
    public string ClaimType { get; set; }
    public string ClaimValue { get; set; }

    public ClaimsAuthorizeAttribute(string claimType, string claimValue)
    {
        ClaimType = claimType;
        ClaimValue = claimValue;
    }

    public override void OnAuthorization(AuthorizationContext filterContext)
    {
        var user = (ClaimsIdentity)HttpContext.Current.User.Identity;
        var claim = user.Claims.FirstOrDefault(c => c.Type == ClaimType);

        if (claim != null && claim.Value == ClaimValue)
        {
            base.OnAuthorization(filterContext);
        }
        else
        {
            filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(){
                {"controller", "Contas"},
                {"action", "NaoAutorizado"}
            });
        }
    }
}

非常感谢