我正在使用 AspNetCore Identity 并嘗試使用 AuthenticationStateProvider 獲取當前登錄用戶的 UserID。我正在將輸出記錄到控制臺,但是用戶名輸出正常,但 ID 顯示為空。db 表中的 ID 欄位不為空。列印所有宣告時,subs欄位似乎是正確的 ID。我是否錯誤地檢索了 ID?檢索 ID 的方法是從我發現的另一篇文章中提出的;代碼如下所示。我如何使用 AuthenticationStateProvider 在我的頁面中檢索作為userID的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: [email protected]
回圈通過 Claims 時,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: [email protected]
name: [email protected]
uj5u.com熱心網友回復:
嘗試:
user.FindFirst(c => c.Type == "sub")?.Value
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/369543.html
標籤:asp.net核心 验证 asp.net 身份 西装外套 blazor-webassembly
上一篇:如果找到,我想單擊該特定版本(seldon-core1.7.0)
下一篇:自定義授權過濾器在運行時出現例外
