ShwasherServiceSessionExtensions.cs 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Security.Claims;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using Abp.Runtime.Session;
  8. namespace ShwasherSys
  9. {
  10. public static class ShwasherServiceSessionExtensions
  11. {
  12. public static string GetClaimValue(this IAbpSession session, string claimTypes)
  13. {
  14. ClaimsPrincipal principal = DefaultPrincipalAccessor.Instance.Principal;
  15. Claim claim = principal?.Claims.FirstOrDefault(c => c.Type == claimTypes);
  16. return claim?.Value ?? "";
  17. }
  18. public static T GetClaimValueEx<T>(this IAbpSession session, string claimTypes)
  19. {
  20. ClaimsPrincipal principal = DefaultPrincipalAccessor.Instance.Principal;
  21. Claim claim = principal?.Claims.FirstOrDefault(c => c.Type == claimTypes);
  22. if (string.IsNullOrEmpty(claim?.Value))
  23. {
  24. return default(T);
  25. }
  26. var result = (T)Convert.ChangeType(claim.Value, typeof(T));
  27. return result;
  28. }
  29. }
  30. }