小编cob*_*208的帖子

C# 修改身份或添加声明

应用程序是 Blazor Server .NET Core 5.0

我正在使用 .NET Core 的身份系统,但遇到了问题。我希望将这个人的名字与身份一起存储,以便我可以轻松地调用它。

目前我有一个类覆盖基本身份:

public class ApplicationUser : IdentityUser
{
    public ApplicationUser() : base() { }

    [StringLength(100)]
    public string FirstName { get; set; }
    [StringLength(100)]
    public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的startup.cs有:

        services.AddDefaultIdentity<ApplicationUser>(options => {
            options.SignIn.RequireConfirmedAccount = true;
            }
        )
Run Code Online (Sandbox Code Playgroud)

在我看来,这应该迫使程序的智能感知在寻找身份时理解 ApplicationUser 是默认类。

但是,当我尝试打电话时:

    var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
    var user = authState.User;
Run Code Online (Sandbox Code Playgroud)

它只返回“IdentityUser”数据,而不是我的自定义 ApplicationUser 类。

我是否缺少 AuthenticationStateProvider 返回的内容或缺少类型转换?

另外,如果这是完全错误的,我应该用索赔来做到这一点吗?如果是这样,我无法找到有效使用 Blazor Server 声明的具体方法。

c# claims-based-identity asp.net-identity blazor

3
推荐指数
1
解决办法
5216
查看次数