c# - ASP.Net Core 身份和配置文件数据
问题描述
我有几个关于在哪里存储其他用户数据的问题,例如 AspNet Core Identity 中的用户照片和个人资料数据。最好的解决办法是把地址(城市、地区等)和用户的图片分别存放在一个单独的数据库表中,PK作为用户表的FK(防止用户表增长很多),或者最好保存这个额外的用户投诉中的数据?
UserClaims 表是否仅适用于来自第三方(如 Google、Facebook)的声明,还是我可以如上所述使用它?
我希望我很清楚。谢谢
解决方案
最好的解决办法是把地址(城市、地区等)和用户的图片分别存放在一个单独的数据库表中,PK作为用户表的FK(防止用户表增长很多),或者最好保存这个额外的用户投诉中的数据?
通常我们会将用户的配置文件数据存储在AspNetUsers表中。
如果你想防止AspNetUsers表增长很多,正如你提到的,使用单独的表来存储头像、地区和城市等用户数据,并建立和之间的关系UserProfile
是ApplicationUser
可以的。但请注意,它可能需要从多个表中查询才能获得预期的数据。
public class UserProfile
{
public string UserProfileId { get; set; }
public string City { get; set; }
//...
//other properties
//...
public string UserId { get; set; }
public ApplicationUser User { get; set; }
}
此外,AspNetUserClaims
存储与应用程序用户关联的声明。我们可以根据实际情况使用以下代码段向用户添加指定的声明。
await _userManager.AddClaimAsync(user, new Claim("type_here", "value_here"));
推荐阅读
- mysql - 如何将一行添加到mysql中的多个表中?
- amazon-web-services - 以 MSK 主题作为事件源的 AWS Lambda 无法读取 Kafka 消息
- c# - 当值来自 WCF 服务时,不会设置 ComboBox SelectedValue
- webpack - 了解 Webpack 配置:多个入口点
- javascript - 为什么我的 jQuery 就绪函数调用不起作用?
- r - R 从图片创建数据框 - 有没有比我在这里做的更好的方法?
- reactjs - 如何固定卡片并将3张卡片放在同一行?
- python - Keras 序列模型训练样本小于输入
- javascript - CORS 标头问题表达 Angular
- go - 如何在 Golang 内部结构中使用 omitempty 标志更新 Mongodb 字段