从 ASP.NET/Blazor 服务器中的当前经过身份验证的用户获取数据
Posted
技术标签:
【中文标题】从 ASP.NET/Blazor 服务器中的当前经过身份验证的用户获取数据【英文标题】:Get data from the current authenticated user in ASP.NET/Blazor Server 【发布时间】:2022-01-04 09:06:45 【问题描述】:我有这个 ApplicationUser 类
using Microsoft.AspNetCore.Identity;
namespace BbcSrUI.Data.Models
public class ApplicationUser : IdentityUser
public int BrandId get; set;
public bool EnableNewCall get; set;
public bool EnableNewEvent get; set;
public bool EnableCalls get; set;
public bool EnableEvents get; set;
我想在索引页面访问认证用户的 BrandId 数据。
【问题讨论】:
【参考方案1】:我目前也在使用相同类型的系统。这是我从经过身份验证的用户那里获取“ApplicationUser”信息的方法。 首先,我有这个功能。
[CascadingParameter]
private Task<AuthenticationState> authenticationStateTask get; set;
[CascadingParameter]
public AuthenticationState AuthenticationState get; set;
public async Task<Guid> GetUserId()
AuthenticationState = await authenticationStateTask;
string Id =
AuthenticationState.User.FindFirstValue(ClaimTypes.NameIdentifier);
return Guid.Parse(Id);
此函数返回当前经过身份验证的用户的 ID。
现在,在我的项目中,我有一个UserService
设置。所以我可以轻松调用:
ApplicationUser user = await userService.GetUserByIdAsync(await GetUserID);
哪一点我可以访问有关当前登录用户的所有信息。
AuthorName = user.FullName;
AuthorPhone = user.PhoneNumber;
AuthorEmail = user.Email;
我不确定你的项目是如何设置的,但我认为它通常也看起来像这样。如果您有任何问题,尽管问!
【讨论】:
以上是关于从 ASP.NET/Blazor 服务器中的当前经过身份验证的用户获取数据的主要内容,如果未能解决你的问题,请参考以下文章