颐和api

PermissionAuthorizationHandler.cs 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using Microsoft.AspNetCore.Authorization;
  2. using Microsoft.AspNetCore.Authorization.Infrastructure;
  3. using System.Threading.Tasks;
  4. using System.Security.Claims;
  5. using Microsoft.AspNetCore.Authentication;
  6. namespace Api.SignToken
  7. {
  8. public class PermissionAuthorizationHandler : AuthorizationHandler<PermissionAuthorizationRequirement>
  9. {
  10. IPermissionService _permissionService;
  11. /// <summary>
  12. /// ¹¹Ôì
  13. /// </summary>
  14. /// <param name="schemes"></param>
  15. public PermissionAuthorizationHandler(IPermissionService permissionService)
  16. {
  17. _permissionService = permissionService;
  18. }
  19. protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, PermissionAuthorizationRequirement requirement)
  20. {
  21. if (context.User != null)
  22. {
  23. string s = _permissionService.GetPermission();
  24. string v = s;
  25. if (context.User.IsInRole("admin"))
  26. {
  27. context.Succeed(requirement);
  28. }
  29. else
  30. {
  31. //string s=_permissionService.GetPermissionAsync().Result;
  32. //string v = s;
  33. context.Succeed(requirement);
  34. //var userIdClaim = context.User.FindFirst(_ => _.Type == ClaimTypes.NameIdentifier);
  35. //if (userIdClaim != null)
  36. //{
  37. // if (_userStore.CheckPermission(int.Parse(userIdClaim.Value), requirement.Name))
  38. // {
  39. // context.Succeed(requirement);
  40. // }
  41. //}
  42. }
  43. }
  44. return Task.CompletedTask;
  45. }
  46. }
  47. }