AuthenticationStateProvider 中的 UserID 显示为空

UserID from AuthenticationStateProvider appears empty

我正在使用 AspNetCore Identity 并尝试使用 AuthenticationStateProvider 获取当前登录用户的 UserID。我正在将输出记录到控制台,但是用户名输出正常但 ID 显示为空。数据库 table 中的 ID 字段不为空。在打印所有声明时,subs 字段似乎是正确的 ID。我是否错误地检索了 ID?检索 ID 的方法是从我发现的另一个 post 中建议的;代码如下所示。我如何使用 AuthenticationStateProvider 在我的页面中检索作为用户 ID 的 sub 值?提前致谢。

正在检索用户 ID

 var user = (await ASP.GetAuthenticationStateAsync()).User;
 var UserStringId = user.FindFirst(c => c.Type.Equals(user.Identity.Name))?.Value;

浏览器控制台输出

USER ID: blazor.webassembly.js:1 
NAME: user4@gmail.com

循环声明时 Sub 是正确的 ID

    var user = (await ASP.GetAuthenticationStateAsync()).User;
    var item = user.Claims;

    foreach(var x in item)
    {
        Console.WriteLine(x);
    }

浏览器控制台输出

s_hash: EQ_bVJS8n32qtUam0wZ1MA
sid: 2E6B597CC9644CFEFDD627532B761F02
sub: 5685a830-cb82-4b60-b459-c0852cc74563 // trying to retrieve this ID
//...
preferred_username: user4@gmail.com
name: user4@gmail.com

尝试:

user.FindFirst(c => c.Type == "sub")?.Value