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

我想存储一些额外的用户信息.从我的了解以下是通常的选择:
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; }

    }

这里添加了FirstName和LastName,它们将在AspNetUsers表中显示为其他字段.

然而,现在使用Asp.Net身份认证还可以在AspNetUserClaims表中存储这种类型的信息.

有人可以向我解释这是AspNetUserClaims中可以存储的那种信息.如果是这样,那么任何人都有这样的例子.

解决方法

在一天结束时,您的登录用户将被转换成存储在ClaimIdentity中的一系列声明,这些声明以HttpContext.User.Identity表示您的用户.您可以选择将FirstName / LastName作为列存储在用户表中,然后您可以明确地读出并转换为相应的声明(如果需要),或者您可以将它们直接存储在AspnetUserClaims表中的声明(仅存储它们作为两个字符串列),认情况下将自动添加到您的用户的声明身份.这两种方法或多或少相当,但最终取决于个人偏好.

BTW是您在所有用户的ClaimIdentity中希望使用这些的唯一原因,如果您要保存db命令以显示名称,并且始终使用ClaimIdentity中的FirstName / LastName声明.如果您提取用户,并使用user.FirstName,则在生成名称声明时也没有太多价值.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....