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
我正在使用 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