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

李编码

在提供的用于身份验证的模板中,您看到在LoginDisplay组件中显示的电子邮件地址,这是的Name属性...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像这样属性获取数据

@context.User.Claims.Where(c => c.Type == "name").FirstOrDefault().Value.ToString()

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

德米特里·帕夫洛夫(Dmitry Pavlov)

如果您有所需的资源,那么Claims这是获取它的最佳场所。您可以向您添加额外的声明Identity-请参见如何在ASP.NET Core Web应用程序添加额外的声明中做到这一点如果这还不够,你想获得完全访问你的IdentityUser授权的组件标记内部的实体,您可以做到这一点通过AuthenticationStateProviderUserManager<IdentityUser>通过它们注入到你的Blazor页面。

@page "/"
@inject AuthenticationStateProvider AuthenticationStateProvider
@using Microsoft.AspNetCore.Identity;
@inject UserManager<IdentityUser> UserManager;

<p>@Details</p>

@code {

    private string Details { get; set; }

    protected override async Task OnInitializedAsync()
    {
        var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
        var user = authState.User;

        if (user.Identity.IsAuthenticated)
        {
            var user = await _UserManager.FindByNameAsync(user.Identity.Name)
            Details = $"Your user phone # is {user.PhoneNumber}.";
        }
        else
        {
            Details = "The user is NOT authenticated.";
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Laravel - 从特定的身份验证保护中获取用户

不使用身份验证中间件,如何通过令牌获取用户ID?

GitHub 身份验证 - 如何限制组织用户?

[Authorize]属性如何知道用户在ASP.NET MVC中已通过身份验证令牌进行身份验证?

如何通过OWIN身份验证获取登录用户?

如何从Blazor中的数据库获取经过身份验证的用户

如何在不通过用户身份验证的情况下从Instagram获取用户的媒体?

如何使用JWT承载身份验证在Google身份验证上获取用户数据?

如何通过具有node和express的JWT身份验证获取用户详细信息?

如何以身份从SQL Server获取用户信息

如何在Blazor WebAssembly中实现OIDC身份验证?

获取用户电子邮件Firebase身份验证

Blazor JWT身份验证

通过Firebase在Android应用中进行身份验证:获取用户的名字和姓氏

Firebase身份验证:通过电子邮件或电话号码获取用户

Angular JS和SpringBoot,通过身份验证后获取用户

如何使用Firebase身份验证获取用户名以外的用户信息

如何在firebase for android中使用身份验证UId从用户节点获取用户信息?

在ASP.NET Core的Windows身份验证中获取用户的AD信息

如何使用node.js中的基本身份验证从URL获取用户名和密码?

刷新时如何在身份验证保护中获取用户和购物车数据?

如何在使用 auth0 进行身份验证的 React 应用程序中获取用户信息

在Rails中通过SAML对用户进行身份验证时,如何发送经过身份验证的响应?

播放框架。如何检查用户是否通过身份验证?

Grafana身份验证和组织

使用Firebase电话身份验证进行反应后,如何获取用户电话号码

Firebase身份验证-登录,然后重定向到应用程序-如何获取用户

在Microsoft Teams Bot中进行身份验证后如何获取用户访问令牌?

Django JWT身份验证:如何获取用户数据?