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



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

UserClaims表是否仅适用于来自谷歌、脸书等第三方的索赔,或者我可以如上所述使用它?

我希望我是清白的。谢谢

最好的解决方案是将地址(城市、地区等(和用户的图像存储在一个单独的数据库表中,PK作为用户表的FK(以防止用户表大量增长(,还是最好将这些额外的数据保存在用户投诉中?

通常我们会将用户的配置文件数据存储在AspNetUsers表中。

如果您想防止AspNetUsers表大量增长,正如您所提到的,使用一个单独的表来存储头像、地区和城市等用户数据,并在UserProfileApplicationUser之间建立关系是可以的。但请注意,这可能需要从多个表中查询才能获得预期的数据。

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"));

最新更新