在提供的用于身份验证的模板中,您看到在LoginDisplay组件中显示的电子邮件地址,这是Name
的{{1}}属性,如下所示:
...Identity
我想知道的是如何访问有关经过身份验证的用户的其他信息。例如,以简单的方式像全名一样。我发现使用<AuthorizeView>
<Authorized>
Hello, @context.User.Identity.Name!
<a href="AzureAD/Account/SignOut">Log out</a>
</Authorized>
<NotAuthorized>
<a href="AzureAD/Account/SignIn">Log in</a>
</NotAuthorized>
</AuthorizeView>
可以从Linq
属性中获取数据,如下所示:
Claims
这是我们应该如何获取该信息,还是有一种更好/首选的方式来从经过身份验证的用户访问该数据?任何提示或建议,不胜感激!
答案 0 :(得分:3)
如果您在Claims
中拥有所需的资源,那么这是从中获取资源的最佳位置。您可以在Identity
中添加额外的声明-在Adding extra claims in ASP.NET Core web applications中查看操作方法。如果这还不够,并且您希望在授权的组件标记内完全访问IdentityUser
实体,则可以通过将AuthenticationStateProvider
和UserManager<IdentityUser>
注入到{{ 1}}页。
Blazor