1

假设我有一个自定义 STS,它对 Web 应用程序的用户进行身份验证。该 STS 还包含用户 ID、姓名和电子邮件地址等数据。我有以下情况:

我有一个使用 STS 的应用程序。在此应用程序中,用户可以创建一条记录,然后其中一个属性将是填充了用户 ID 的“创建者”。如果人们搜索此记录,我想向他们显示真实姓名而不是用户 ID。所以我需要以某种方式保持从用户 ID 到真实姓名的关系。

问题:在应用程序的数据库中,我只有一个用户 ID,但我想显示特定的用户详细信息。最好的方法是什么?我考虑向我的 STS 添加一个方法,让我查询其他用户数据,但如果我需要在屏幕上显示 50 条记录,它们都有不同的用户 ID,那将非常慢。另一种解决方案是在我的应用程序中保留一个包含用户数据的表格。当我的应用程序第一次使用“用户”时,会将用户添加到此表中。但是您如何以及何时同步此表?

我想我更喜欢解决方案 2,并且每天晚上左右同步数据。

你们有什么感想?

4

1 回答 1

2

您可以修改数据库的架构吗?

如果可以,那么您可以从 STS 获取名称和其他用户属性信息,然后将其保存在您身边(可能在用户数据库或相关记录中)。您会将其视为仅用于查询和显示的“参考”数据,并且不允许编辑。

每次用户进行身份验证(并提供带有所有这些声明的令牌)时,您只需更新数据库上的信息。为此,您需要一个良好的唯一 ID(用户 ID?),它可以用作用户的永久、受信任的句柄。

于 2011-02-24T01:08:02.980 回答