IwbSessionExtensions.cs 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using System;
  2. using System.Linq;
  3. using Abp.Runtime.Session;
  4. namespace IwbZero.Session
  5. {
  6. public static class IwbSessionExtensions
  7. {
  8. public static string GetUserName(this IAbpSession session)
  9. {
  10. var claim = DefaultPrincipalAccessor.Instance.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.UserName);
  11. return claim?.Value;
  12. }
  13. public static string GetRealName(this IAbpSession session)
  14. {
  15. var claim = DefaultPrincipalAccessor.Instance.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.RealName);
  16. return claim?.Value;
  17. }
  18. public static string[] GetUserRoles(this IAbpSession session)
  19. {
  20. var claim = DefaultPrincipalAccessor.Instance.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.UserRoles);
  21. return claim?.Value.Split(new char[','], StringSplitOptions.RemoveEmptyEntries);
  22. }
  23. public static int? GetUserType(this IAbpSession session)
  24. {
  25. //var claim = DefaultPrincipalAccessor.Instance.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.UserType);
  26. //if (string.IsNullOrEmpty(claim?.Value))
  27. // return null;
  28. //return !int.TryParse(claim.Value, out var userType) ? (int?)null : userType;
  29. return GetClaimValue<int>(session, IwbClaimTypes.UserType);
  30. }
  31. public static int? GetEmailAddresse(this IAbpSession session)
  32. {
  33. //var claim = DefaultPrincipalAccessor.Instance.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.UserType);
  34. //if (string.IsNullOrEmpty(claim?.Value))
  35. // return null;
  36. //return !int.TryParse(claim.Value, out var userType) ? (int?)null : userType;
  37. return GetClaimValue<int>(session, IwbClaimTypes.EmailAddress);
  38. }
  39. public static bool? GetRememberMe(this IAbpSession session)
  40. {
  41. //var claim = DefaultPrincipalAccessor.Instance.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.RememberMe);
  42. //if (string.IsNullOrEmpty(claim?.Value))
  43. // return null;
  44. //return !bool.TryParse(claim.Value, out var remmberMe) ? (bool?)null : remmberMe;
  45. return GetClaimValue<bool>(session, IwbClaimTypes.RememberMe);
  46. }
  47. public static DateTimeOffset? GetExpireTime(this IAbpSession session)
  48. {
  49. //var claim = DefaultPrincipalAccessor.Instance.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.ExpireTime);
  50. //if (string.IsNullOrEmpty(claim?.Value))
  51. // return null;
  52. //return !DateTime.TryParse(claim.Value, out var expireTime) ? (DateTime?)null : expireTime;
  53. return GetClaimValue<DateTimeOffset>(session, IwbClaimTypes.ExpireTime);
  54. }
  55. public static string GetWxOpenId(this IAbpSession session)
  56. {
  57. var claim = DefaultPrincipalAccessor.Instance.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.WxOpenId);
  58. if (string.IsNullOrEmpty(claim?.Value))
  59. return null;
  60. //return !DateTime.TryParse(claim.Value, out var expireTime) ? (DateTime?)null : expireTime;
  61. return claim?.Value;
  62. }
  63. public static T? GetClaimValue<T>(this IAbpSession session, string claimTypes)
  64. where T : struct
  65. {
  66. var claim = DefaultPrincipalAccessor.Instance.Principal?.Claims.FirstOrDefault(c => c.Type == claimTypes);
  67. if (string.IsNullOrEmpty(claim?.Value))
  68. return null;
  69. var result = (T)Convert.ChangeType(claim.Value, typeof(T));
  70. return result;
  71. }
  72. public static string GetClaimValue(this IAbpSession session, string claimTypes)
  73. {
  74. var claim = DefaultPrincipalAccessor.Instance.Principal?.Claims.FirstOrDefault(c => c.Type == claimTypes);
  75. return claim?.Value;
  76. }
  77. }
  78. }