| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using IwbZero.Authorization.Base.Users;
- namespace IwbZero.Runtime.Session
- {
- public static class IwbSessionExtensions
- {
- public static string GetUserName(this IIwbSession session)
- {
- return GetClaimValue(session, IwbClaimTypes.UserName);
- }
- public static string GetRealName(this IIwbSession session)
- {
- return GetClaimValue(session, IwbClaimTypes.RealName);
- }
- public static string GetUserSingleRole(this IIwbSession session)
- {
- return GetClaimValue(session, IwbClaimTypes.UserRoles);
- }
- public static string[] GetUserRoles(this IIwbSession session)
- {
- var claim = session.GetClaim(IwbClaimTypes.UserRoles);
- return claim?.Value.Split(new char[','], StringSplitOptions.RemoveEmptyEntries);
- }
- public static IEnumerable<string> GetUserRoleList(this IIwbSession session)
- {
- var claim = session.GetClaim(IwbClaimTypes.UserRoles);
- return claim?.Value?.Split(new char[','], StringSplitOptions.RemoveEmptyEntries).ToList() ?? new List<string>();
- }
- public static IEnumerable<string> GetUserRoleIdList(this IIwbSession session)
- {
- var claim = session.GetClaim(IwbClaimTypes.UserRoleIds);
- return claim?.Value?.Split(new char[','], StringSplitOptions.RemoveEmptyEntries).ToList() ?? new List<string>();
- }
- public static int? GetUserType(this IIwbSession session)
- {
- return GetClaimValue<int>(session, IwbClaimTypes.UserType);
- }
- public static string GetEmailAddress(this IIwbSession session)
- {
- return GetClaimValue(session, IwbClaimTypes.EmailAddress);
- }
- public static bool? GetRememberMe(this IIwbSession session)
- {
- return GetClaimValue<bool>(session, IwbClaimTypes.RememberMe);
- }
- public static DateTimeOffset? GetExpireTime(this IIwbSession session)
- {
- return GetClaimValue<DateTimeOffset>(session, IwbClaimTypes.ExpireTime);
- }
- public static T? GetClaimValue<T>(this IIwbSession session, string claimTypes)
- where T : struct
- {
- var claim = session.GetClaim(claimTypes);
- if (string.IsNullOrEmpty(claim?.Value))
- return null;
- var result = (T)Convert.ChangeType(claim.Value, typeof(T));
- return result;
- }
- public static string GetClaimValue(this IIwbSession session, string claimTypes)
- {
- var claim = session.GetClaim(claimTypes);
- return claim?.Value ?? "";
- }
- public static bool IsUser(this IIwbSession session, UserBase user)
- {
- if (session == null)
- {
- throw new ArgumentNullException(nameof(session));
- }
- if (user == null)
- {
- throw new ArgumentNullException(nameof(user));
- }
- return session.TenantId == user.TenantId &&
- session.UserId.HasValue &&
- session.UserId.Value == user.Id;
- }
- }
- }
|