8#if NETSTANDARD2_0 || NET5_0 || NETCORE3_1
10using System.Threading.Tasks;
12using Microsoft.AspNetCore.Authorization;
19 public class CslaPermissionRequirement : IAuthorizationRequirement
28 public Type ObjectType {
get; }
38 ObjectType = objectType;
45 public class CslaPermissionHandler : AuthorizationHandler<CslaPermissionRequirement>
52 public override Task HandleAsync(AuthorizationHandlerContext context)
54 foreach (var item
in context.PendingRequirements)
55 if (item is CslaPermissionRequirement cr)
56 HandleRequirementAsync(context, cr);
57 return Task.CompletedTask;
66 protected override Task HandleRequirementAsync(AuthorizationHandlerContext context,
67 CslaPermissionRequirement requirement)
69 if (context.User ==
null || !context.User.Identity.IsAuthenticated)
71 else if (BusinessRules.HasPermission(requirement.Action, requirement.ObjectType))
72 context.Succeed(requirement);
73 return Task.CompletedTask;
AuthorizationActions
Authorization actions.