有關啓用身份驗證的tutorials可以正常工作,但是應該使用什麼標識符來爲數據庫中的用戶存儲數據?易於獲得的唯一東西是User.Name
,這似乎是我的電子郵件地址。ASP.NET核心身份驗證ID?
我在數據庫中看到有一個AspNetUsers
表,其中UserName
列和varchar Id
列似乎是GUID並且是主鍵。看起來'Id'字段是使用的邏輯值,但它在我的應用程序中不可用。我發現我可以這樣做:
string ID_TYPE = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier";
var id = User.Claims.Where(x => x.Type == ID_TYPE).Select(x => x.Value).FirstOrDefault();
但是,這似乎是一個奇怪的方式去解決它。如果我想創建一個有帖子關聯用戶的'Posts'表,那麼這個值是否合適呢?
我看過thesepages而且看起來很多這可能是由於Microsoft將相同的登錄過程與ActiveDirectory集成在一起。
是否有理由讓id很難找到,名字如此簡單?我應該使用這個名字嗎?我應該小心不要讓用戶改變他們的用戶名嗎?
而不是Id,你可以使用任何你知道我唯一的字段,例如NormalizedUserName或NormalizedEmail,就像上面所顯示的一樣。 var email = user.NormalizedEmail; –