我创建了一个名为AuthorizationManager的类,它派生自ClaimsAuthorizationManager . CheckAccess()方法被调用三次 . 为什么会这样?这是正常的过程吗?

我正在使用Thinktecture Identity Server v2 .

AuthorizationManager Class:

public class AuthorizationManager : ClaimsAuthorizationManager
    {
        public override bool CheckAccess(AuthorizationContext context)
        {
            Trace.WriteLine("\n__________Claims Authorization Manager__________\n");
            var result = base.CheckAccess(context);
            CheckAction(context);
            CheckResource(context);
            CheckClaims(context);
            return result;
        }

        private void CheckAction(AuthorizationContext context)
        {

            var action = context.Action.First().Value;

            Trace.WriteLine("\nAction:");
            Trace.WriteLine(action);
        }


        private void CheckResource(AuthorizationContext context)
        {
            var resources = context.Resource;

            Trace.WriteLine("\nResources:");
            foreach(var resource in resources)
            {
                Trace.WriteLine(resource.Value);
            }
        }

        private void CheckClaims(AuthorizationContext context)
        {
            var claims = context.Principal.Claims;

            Trace.WriteLine("\nClaims:");
            foreach (var claim in claims)
            {
                Trace.WriteLine(claim.Value);
            }
        }
    }

AccountController

public class AccountController : Controller
    {
        [ClaimsAuthorize(action: "View", resources: "Profile")]
        public ActionResult Profile()
        {
            return View();
        }
    }

OUTPUT/TRACE RESULT:

申请授权经理_

行动:GET

资源:[some_domain] / account / profile

声称:admin admin

授权经理_

行动:简介

资源:帐户

声称:admin admin

授权经理_

行动:查看

资源:简介

声称:admin admin