gpt4 book ai didi

asp.net - 使用 Asp.Net Identity 2 在 AspNetUserClaims 中存储用户信息有什么好处吗?

转载 作者:行者123 更新时间:2023-12-03 23:33:50 35 4
gpt4 key购买 nike

我想存储一些额外的用户信息。据我了解,以下是通常的选择:

public class ApplicationUser : IdentityUser {
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) {
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
public string FirstName { get; set; }
public string LastName { get; set; }

}

这里添加了名字和姓氏,它们将作为附加字段出现在 AspNetUsers 表中。

但是,现在使用 Asp.Net Identity 似乎还有一个选项可以将此类信息存储在 AspNetUserClaims 表中。

谁能给我解释一下。展望 future ,这种信息可以存储在 AspNetUserClaims 中。如果是这样,那么有没有人有任何这样的例子。

最佳答案

在一天结束时,您的登录用户将被转换为一系列声明,这些声明存储在 HttpContext.User.Identity 中代表您的用户的 ClaimsIdentity 中。您可以选择将名字/姓氏存储为用户表中的列,然后您可以显式读出并转换为适当的声明(如果需要),或者您可以将它们直接存储为 AspnetUserClaims 表中的声明(它只是存储它们作为两个字符串列),默认情况下会自动添加到您用户的声明标识中。两种方法或多或少是等效的,因此取决于个人喜好。

顺便说一句,您希望在用户的 ClaimsIdentity 中使用这些内容的唯一原因是,如果您只想保存数据库命中以显示名称,并且始终在 ClaimsIdentity 中使用 FirstName/LastName 声明。如果您获取用户并改用 user.FirstName,则生成名称声明也没有太大值(value)。

关于asp.net - 使用 Asp.Net Identity 2 在 AspNetUserClaims 中存储用户信息有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23215727/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com