我一直在做很多研究,但都沒有幫助我理解UserClaim表的意義。瞭解MVC5 UserClaim表
當您創建一個MVC5項目時,會在註冊數據庫時創建一些默認表。我理解除UserClaim之外的所有人的目的。
從我的理解,用戶聲明基本上是關於用戶的關鍵對值。例如,如果我想要一個FavouriteBook字段,我可以將該字段添加到用戶表並訪問它。其實我已經有類似的東西建立在我的每一個用戶都有「自定義URL」於是,我已經創造了以下的申索:
public class User : IdentityUser
{
public string CustomUrl { get; set; }
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<User> manager)
{
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
userIdentity.AddClaim(new Claim("CustomUrl", CustomUrl));
return userIdentity;
}
}
public static class UsersCustomUrl
{
public static string GetCustomUrl(this IIdentity identity)
{
var claim = ((ClaimsIdentity)identity).FindFirst("CustomUrl");
return (claim != null) ? claim.Value : string.Empty;
}
}
以上基本上可以讓我通過簡單地調用User.Identity.GetCustomUrl()
訪問CustomUrl
上述代碼不會寫入UserClaims表,因爲用戶表中存在該值。那麼這張桌子有什麼意義呢?
我在猜測,也許我應該將CustomUrl添加到UserClaims,並以某種方式將其綁定到身份,這可能是什麼?我很想知道答案!
現在有很多意義,謝謝你澄清它。 – Bojan
最受歡迎:) –