正如标题所述,如何更新我的索赔身份中的储值?而且我一直在通过Internet搜索,我更新的方式需要使用ApplicationDbContext
这是我存储索赔的方式
var user = await repository.GetActiveUserByUsernameAsync(username);
if (user != null)
{
if (MyHasher.Verify(password, user.Password))
{
var principal = new ClaimsPrincipal();
var claims = new List<Claim>
{
new Claim("UserId", user.Id.ToString()),
new Claim("UserDisplayName", user.DisplayName)
};
principal.AddIdentity(new ClaimsIdentity(new GenericIdentity(username, "Username"), claims));
return Result.Ok(principal);
}
}
我进行身份扩展以获取当前存储的Claim值
获取UserDisplayName的示例
public static string GetUserDisplayName(this IIdentity identity)
{
if (identity == null)
{
throw new ArgumentNullException(nameof(identity));
}
var ci = identity as ClaimsIdentity;
string userDisplayName = string.Empty;
if (ci != null)
{
userDisplayName = ci.FindFirst(ClaimType.UserDisplayName)?.Value ?? string.Empty;
}
return userDisplayName;
}
每次更新个人资料时都想更新“已存储索赔”值的原因,我也更新了“索赔”值。
我该怎么做?
谢谢你