public IActionResult Index()
        {
            //Windows or local => claim http://schemas.microsoft.com/identity/claims/identityprovider
            var claimIdentityprovider = User.Claims.FirstOrDefault(t => t.Type == "http://schemas.microsoft.com/identity/claims/identityprovider");

            if (claimIdentityprovider != null && _appAuthorizationService.IsAdmin(User.Identity.Name, claimIdentityprovider.Value))
            {
                // yes, this is an admin
                Console.WriteLine("This is an admin, we can do some specific admin logic!");
            }

            return(View());
        }
        protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, IsAdminRequirement requirement)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }
            if (requirement == null)
            {
                throw new ArgumentNullException(nameof(requirement));
            }


            if (_appAuthorizationService.IsAdmin(context.User.Identity.Name))
            {
                context.Succeed(requirement);
            }

            return(Task.CompletedTask);
        }
예제 #3
0
        protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, IsAdminRequirement requirement)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }
            if (requirement == null)
            {
                throw new ArgumentNullException(nameof(requirement));
            }

            var claimIdentityprovider = context.User.Claims.FirstOrDefault(t => t.Type == "http://schemas.microsoft.com/identity/claims/identityprovider");

            if (claimIdentityprovider != null && _appAuthorizationService.IsAdmin(context.User.Identity.Name, claimIdentityprovider.Value))
            {
                context.Succeed(requirement);
            }

            return(Task.CompletedTask);
        }