足力健后端,使用.netcore版本,合并1个项目使用

PermissionAuthorizationHandler.cs 1.8KB

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