基于声明的身份 - >同步用户数据

时间:2011-02-22 20:13:16

标签: authentication wif claims-based-identity

假设我有自定义STS来验证网络应用的用户。此STS还包含用户ID,名称和电子邮件地址等数据。 我有以下情况:

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

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

我认为我更喜欢解决方案2,并且每晚都会同步数据。

你们有什么想法?

1 个答案:

答案 0 :(得分:2)

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

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

每次用户进行身份验证(并显示包含所有这些声明的令牌)时,您只需更新数据库中的信息即可。为此,您需要一个良好的唯一ID(用户ID?),可用作用户的永久可信句柄。