Skip to content

Commit ebb6253

Browse files
committed
🔨 (identity) 初始化OnlineUser时,用户的UserClaim数据都添加到扩展数据字典onlineUser.ExtendData
1 parent fad6eff commit ebb6253

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

src/OSharp.Identity/Identity/OnlineUserProvider.cs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
using System;
1111
using System.Collections.Generic;
1212
using System.Linq;
13+
using System.Security.Claims;
1314
using System.Threading;
1415
using System.Threading.Tasks;
1516

@@ -31,9 +32,11 @@ namespace OSharp.Identity
3132
/// <summary>
3233
/// 在线用户信息提供者
3334
/// </summary>
34-
public class OnlineUserProvider<TUser, TUserKey, TRole, TRoleKey> : IOnlineUserProvider
35+
public class OnlineUserProvider<TUser, TUserKey, TUserClaim, TUserClaimKey, TRole, TRoleKey> : IOnlineUserProvider
3536
where TUser : UserBase<TUserKey>
3637
where TUserKey : IEquatable<TUserKey>
38+
where TUserClaim : UserClaimBase<TUserClaimKey, TUserKey>
39+
where TUserClaimKey : IEquatable<TUserClaimKey>
3740
where TRole : RoleBase<TRoleKey>
3841
where TRoleKey : IEquatable<TRoleKey>
3942
{
@@ -76,7 +79,7 @@ public virtual async Task<OnlineUser> GetOrCreate(string userName)
7679
RoleManager<TRole> roleManager = _serviceProvider.GetService<RoleManager<TRole>>();
7780
bool isAdmin = roleManager.Roles.ToList().Any(m => roles.Contains(m.Name) && m.IsAdmin);
7881
RefreshToken[] refreshTokens = await GetRefreshTokens(user);
79-
return new OnlineUser()
82+
OnlineUser onlineUser = new OnlineUser()
8083
{
8184
Id = user.Id.ToString(),
8285
UserName = user.UserName,
@@ -87,6 +90,15 @@ public virtual async Task<OnlineUser> GetOrCreate(string userName)
8790
Roles = roles.ToArray(),
8891
RefreshTokens = refreshTokens.ToDictionary(m => m.ClientId, m => m)
8992
};
93+
94+
// UserClaim都添加到扩展数据
95+
IList<Claim> claims = await userManager.GetClaimsAsync(user);
96+
foreach (Claim claim in claims)
97+
{
98+
onlineUser.ExtendData.Add(claim.Type, claim.Value);
99+
}
100+
101+
return onlineUser;
90102
},
91103
options);
92104
}

0 commit comments

Comments
 (0)