我需要添加一个从数据库检索的自定义Clamis值(即UserID(。
这是一个blazor托管的应用程序,并且Azure AD的身份验证已经实现
索赔的价值必须从数据库中检索,因此只能读取一次。
提前谢谢。
如果需要添加自定义声明:
IdentityUser user = await UserManager.FindByIdAsync(Id);
var claim = new Claim(type, value);
var result = await UserManager.AddClaimAsync(user, claim);
要检索索赔,您应该使用以下内容:
IdentityUser user = await UserManager.FindByIdAsync(Id);
Claims = await UserManager.GetClaimsAsync(user);
记住,当你通过Identity登录时,AspNetUserClaims的声明就在cookie上,所以你可以在任何页面上看到它:
@if (User.Identity.IsAuthenticated)
{
<p>User: @User.Identity.Name;</p>
<table class="table table-sm">
@foreach (var claim in User.Claims)
{
<tr>
<td>@claim.Type</td>
<td>@claim.Value</td>
</tr>
}
</table>
}