IwbSession.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. using System;
  2. using System.Linq;
  3. using Abp.Configuration.Startup;
  4. using Abp.MultiTenancy;
  5. using Abp.Runtime;
  6. using Abp.Runtime.Session;
  7. namespace IwbZero.Session
  8. {
  9. public class IwbSession : ClaimsAbpSession, IIwbSession
  10. {
  11. public IwbSession(
  12. IPrincipalAccessor principalAccessor,
  13. IMultiTenancyConfig multiTenancy,
  14. ITenantResolver tenantResolver,
  15. IAmbientScopeProvider<SessionOverride> sessionOverrideScopeProvider)
  16. : base(principalAccessor, multiTenancy, tenantResolver, sessionOverrideScopeProvider)
  17. {
  18. }
  19. public virtual string UserName
  20. {
  21. get
  22. {
  23. var claim = PrincipalAccessor.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.UserName);
  24. return claim?.Value;
  25. }
  26. }
  27. public virtual string RealName
  28. {
  29. get
  30. {
  31. var claim = PrincipalAccessor.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.UserName);
  32. return claim?.Value;
  33. }
  34. }
  35. public virtual int? UserType
  36. {
  37. get
  38. {
  39. var claim = PrincipalAccessor.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.UserType);
  40. if (string.IsNullOrEmpty(claim?.Value))
  41. return null;
  42. return !int.TryParse(claim.Value, out var userType) ? (int?)null : userType;
  43. }
  44. }
  45. public virtual string[] UserRoles
  46. {
  47. get
  48. {
  49. var claim = PrincipalAccessor.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.UserRoles);
  50. return claim?.Value.Split(new char[','], StringSplitOptions.RemoveEmptyEntries);
  51. }
  52. }
  53. public virtual bool? RememberMe
  54. {
  55. get
  56. {
  57. var claim = PrincipalAccessor.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.RememberMe);
  58. if (string.IsNullOrEmpty(claim?.Value))
  59. return null;
  60. return !bool.TryParse(claim.Value, out var remmberMe) ? (bool?)null : remmberMe;
  61. }
  62. }
  63. public virtual DateTimeOffset? ExpireTime
  64. {
  65. get
  66. {
  67. var claim = PrincipalAccessor.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.ExpireTime);
  68. if (string.IsNullOrEmpty(claim?.Value))
  69. return null;
  70. return !DateTimeOffset.TryParse(claim.Value, out var expireTime) ? (DateTimeOffset?)null : expireTime;
  71. }
  72. }
  73. public virtual string EmailAddress
  74. {
  75. get
  76. {
  77. var claim = PrincipalAccessor.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.EmailAddress);
  78. return claim?.Value;
  79. }
  80. }
  81. public virtual string EmployeeNo
  82. {
  83. get
  84. {
  85. var claim = PrincipalAccessor.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.EmployeeNo);
  86. return claim?.Value;
  87. }
  88. }
  89. public virtual string WxOpenId
  90. {
  91. get
  92. {
  93. var claim = PrincipalAccessor.Principal?.Claims.FirstOrDefault(c => c.Type == IwbClaimTypes.WxOpenId);
  94. return claim?.Value;
  95. }
  96. }
  97. }
  98. }