如何通过组织身份验证从Blazor Server中的身份获取用户属性

时间:2020-02-25 18:26:11

标签: c# azure-active-directory asp.net-identity blazor

在提供的用于身份验证的模板中,您看到在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

这是我们应该如何获取该信息,还是有一种更好/首选的方式来从经过身份验证的用户访问该数据?任何提示或建议,不胜感激!

1 个答案:

答案 0 :(得分:3)

如果您在Claims中拥有所需的资源,那么这是从中获取资源的最佳位置。您可以在Identity中添加额外的声明-在Adding extra claims in ASP.NET Core web applications中查看操作方法。如果这还不够,并且您希望在授权的组件标记内完全访问IdentityUser实体,则可以通过将AuthenticationStateProviderUserManager<IdentityUser>注入到{{ 1}}页。

Blazor