我正在研究面向公众的系统,理想情况下会增加到大量的流量。这都是c#.net工作。
我正在使用基于声明的身份,因此我目前正在使用用户声明表来存储用户数据,但随着用户群的增长,我觉得这将变得太慢而无法支持流量。我正在考虑创建一个用户配置文件表来水平存储非安全相关数据,而不是像声明表中那样垂直存储,只保留声明表中的安全数据。
这是解决问题的合理方法吗?任何人都可以通过他们在这样的场景中获得的经验分享一些见解吗?
更新
我的问题不在于用用户身份传递的JWT
令牌的大小。我的问题是严格使用“UserClaim”表以Claim
形式存储用户数据的所有,而不是使用UserProfile
或类似的表存储某些事情,以及找到“这些数据进入索赔表与这些数据进入配置文件表”的正确平衡。
答案 0 :(得分:2)
我建议只将数据保存在授权决策中使用的令牌中,而不是使用用户个人资料信息使令牌膨胀。
令牌有效的时间戳,令牌所针对的受众,用户的用户名,组和角色等。有关详细信息,请参阅here。
在令牌中保留个人资料信息会强制您的应用在获得任何信息时获取新令牌。令牌通常在其生命周期内进行缓存,以防止必须更频繁地重新发布它们。