Authentication 基于身份的索赔->;同步用户数据

Authentication 基于身份的索赔->;同步用户数据,authentication,wif,claims-based-identity,Authentication,Wif,Claims Based Identity,假设我有一个自定义的STS,用于验证web应用程序的用户。此STS还包含用户id、名称和电子邮件地址等数据。 我有以下情况: 我有一个使用STS的应用程序。在这个应用程序中,用户可以创建一个记录,其中一个属性将由用户id填充为“创建者”。如果人们搜索此记录,我希望向他们显示真实姓名,而不是用户id。因此,我需要以某种方式保持从用户id到真实姓名的关系 问题:在应用程序的数据库中,我只有一个用户id,但我想显示特定的用户详细信息。最好的方法是什么? 我想在我的STS中添加一个方法,让我查询更多的用

假设我有一个自定义的STS,用于验证web应用程序的用户。此STS还包含用户id、名称和电子邮件地址等数据。 我有以下情况:

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

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

我想我更喜欢解决方案2,只是每晚左右同步数据


你们怎么看?

你们能修改数据库的模式吗

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


每次用户进行身份验证(并提供包含所有这些声明的令牌)时,您只需更新数据库中的信息。要使其工作,您需要一个好的唯一id(userid?),它可以用作用户的永久可信句柄

多谢各位。很高兴听到在应用程序数据库中创建“只读”用户表是一个很好的解决方案。在大多数情况下,在身份验证事件上更新此表看起来都很正常。我想我们可以想出一些情况,用户被引用(比如“读者”之类的),但他们从不登录系统,但我们会解决这个问题。请给出建议。什么声明或声明组合可以用作唯一的永久用户id?您的“用户id”是否不够好?人们也经常使用电子邮件。一些IdP提供某种名称标识符(例如LiveID、Google等)。谢谢,@Eugenio。我对永久跨RP用户标识符的声明有疑问。也许你能回答我的问题