C# ASP.Net核心标识和配置文件数据

C# ASP.Net核心标识和配置文件数据,c#,asp.net-core,asp.net-identity,C#,Asp.net Core,Asp.net Identity,我有一些关于在哪里存储额外的用户数据的问题,例如在AspNet Core Identity中的用户照片和个人资料数据。 最好的解决方案是将地址(城市、地区等)和用户图像存储在一个单独的数据库表中,并将PK作为用户表的FK(以防止用户表大量增长),或者最好将此附加数据保存在用户投诉中 UserClaims表是否仅适用于来自第三方(如谷歌、Facebook)的索赔,或者我是否可以如上所述使用它 我希望我是清楚的。多谢各位 最好的解决方案是将地址(城市、地区等)和用户图像存储在一个单独的数据库表中,并

我有一些关于在哪里存储额外的用户数据的问题,例如在AspNet Core Identity中的用户照片和个人资料数据。 最好的解决方案是将地址(城市、地区等)和用户图像存储在一个单独的数据库表中,并将PK作为用户表的FK(以防止用户表大量增长),或者最好将此附加数据保存在用户投诉中

UserClaims表是否仅适用于来自第三方(如谷歌、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"));

用户声明不适用于外部提供者。你可以自己创造。我将把这些作为声明也不在单独的表格中。只需确保图像路径,而不是字节。