CookieAuthorizationService.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Security.Principal;
  4. using System.Text;
  5. using System.Linq;
  6. using Microsoft.Extensions.Configuration;
  7. using Microsoft.Extensions.DependencyInjection;
  8. using Microsoft.AspNetCore.Authorization;
  9. using GreenTree.Strohrmann.ERP.Domain.Model;
  10. using System.Security.Claims;
  11. namespace GreenTree.Strohrmann.ERP.Services.Authorization
  12. {
  13. public class CookieAuthorizationService : IAuthorizationService
  14. {
  15. #region Implementation
  16. /// <summary>
  17. /// Check wether the user has a specific policy
  18. /// </summary>
  19. /// <param name="identity">The user identity.</param>
  20. /// <param name="policy">The policy to be checked.</param>
  21. public bool UserHasPolicy(IIdentity identity, string policy)
  22. {
  23. var claimsIdentity = identity as ClaimsIdentity;
  24. if (claimsIdentity == null) return false;
  25. return claimsIdentity.Claims
  26. .Any(c => c.Type == "Policy" && c.Value == policy);
  27. }
  28. #endregion
  29. }
  30. }