VzSessionExtensions.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using System.Security.Claims;
  2. using Abp.Runtime.Session;
  3. using VberZero.Authorization;
  4. using VberZero.BaseSystem.Users;
  5. namespace VberZero.Session;
  6. public static class VzSessionExtensions
  7. {
  8. public static bool IsUser(this IVzSession session, User user)
  9. {
  10. if (session == null)
  11. {
  12. throw new ArgumentNullException(nameof(session));
  13. }
  14. if (user == null)
  15. {
  16. throw new ArgumentNullException(nameof(user));
  17. }
  18. return session.TenantId == user.TenantId &&
  19. session.UserId.HasValue &&
  20. session.UserId.Value == user.Id;
  21. }
  22. public static string GetUserName(this IVzSession session)
  23. {
  24. return GetClaimValue(session, VzClaimTypes.UserName);
  25. }
  26. public static string GetAccountNo(this IVzSession session)
  27. {
  28. return GetClaimValue(session, VzClaimTypes.AccountNo);
  29. }
  30. public static VzDefinition.AccountType GetAccountType(this IVzSession session)
  31. {
  32. try
  33. {
  34. var temp = GetClaimValue<int>(session, VzClaimTypes.AccountType);
  35. if (temp != null)
  36. {
  37. return (VzDefinition.AccountType)temp;
  38. }
  39. }
  40. catch
  41. {
  42. //
  43. }
  44. return default;
  45. }
  46. public static VzDefinition.UserType GetUserType(this IVzSession session)
  47. {
  48. try
  49. {
  50. var temp = GetClaimValue<int>(session, VzClaimTypes.UserType);
  51. if (temp != null)
  52. {
  53. return (VzDefinition.UserType)temp;
  54. }
  55. }
  56. catch
  57. {
  58. //
  59. }
  60. return default;
  61. }
  62. public static T? GetClaimValue<T>(this IVzSession session, string claimTypes)
  63. where T : struct
  64. {
  65. var claimValue = GetClaimValue(session, claimTypes);
  66. if (string.IsNullOrEmpty(claimValue))
  67. return null;
  68. var result = (T)Convert.ChangeType(claimValue, typeof(T));
  69. return result;
  70. }
  71. public static string GetClaimValue(this IVzSession session, string claimTypes)
  72. {
  73. var claim = session.GetClaimValueStr(claimTypes);
  74. return claim ?? "";
  75. }
  76. public static Claim GetClaim(string type)
  77. {
  78. ClaimsPrincipal principal = DefaultPrincipalAccessor.Instance.Principal;
  79. Claim claim = principal?.Claims.FirstOrDefault(c => c.Type == type);
  80. return claim;
  81. }
  82. }