public async Task Invoke(HttpContext context, IPolicyClientService client) { if (context.User.Identity.IsAuthenticated) { Models.PolicyResult policy = await client.GetPolicyAsync(context); if (policy.Roles != null && policy.Permissions != null) { IEnumerable <Claim> roleClaims = policy.Roles.Select(x => new Claim(Constants.Policy.Role, x, nameof(String), client.Authority)); IEnumerable <Claim> permissionClaims = policy.Permissions.Select(x => new Claim(Constants.Policy.Permission, x, nameof(String), client.Authority)); ClaimsIdentity id = new ClaimsIdentity(Constants.Policy.Identity, "name", Constants.Policy.Role); id.AddClaims(roleClaims); id.AddClaims(permissionClaims); context.User.AddIdentity(id); } } await _next(context); }
public DefaultPolicyServerPermissionHandler(IPolicyClientService client) { _client = client; }
public ClientService(IUnitOfWork unitOfWork, IPolicyClientService policyClientService) { _unitOfWork = unitOfWork; _policyClientService = policyClientService; }
/// <summary> /// Class constructor /// </summary> /// <param name="policyClientService"></param> public PolicyClientsController(IPolicyClientService policyClientService) { _policyClientService = policyClientService; }