2011-02-22 50 views
1

比方說,我有自定義的STS認證Web應用程序的用戶。該STS還具有用戶ID,姓名和電子郵件地址等數據。 我有以下情況:基於聲明的身份 - >同步用戶數據

我有一個使用STS的應用程序。在這個應用程序中,用戶可以創建一個記錄,然後其中的一個屬性將被填充用戶標識。如果人們搜索此記錄,我想向他們展示真實姓名而不是用戶標識。所以我需要以某種方式保持從用戶ID到真實姓名的關係。

問題:在應用程序的數據庫中,我只有一個用戶ID,但我想顯示特定的用戶詳細信息。什麼是最好的方法來做到這一點? 我想添加一個方法到我的STS,讓我來查詢額外的用戶數據,但這將是非常緩慢如果我需要在屏幕上顯示50個記錄,它們都有不同的用戶ID。 另一個解決方案是用我的應用程序中的用戶數據保留一張表。當用戶第一次使用我的應用程序時,用戶被添加到此表中。但是如何以及何時同步這張桌子?

我想我更喜歡解決方案2,並且每晚只是同步數據。

你們認爲什麼?

回答

2

你可以修改數據庫的模式嗎?

如果可以,那麼您可以從STS獲取名稱和其他用戶屬性信息,然後將其保存在您身邊(可能位於用戶數據庫或關聯記錄中)。您將此視爲僅用於查詢和顯示的「參考」數據,並且不允許進行編輯。

每次用戶進行身份驗證(並提供包含所有這些聲明的令牌)時,只需更新數據庫上的信息即可。爲了這個工作,你需要一個很好的唯一ID(用戶標識符?),它可以被用作用戶永久的,可信的句柄。

+0

謝謝。很高興聽到在應用程序數據庫中創建「只讀」用戶表是一個很好的解決方案。在認證事件中更新此表在大多數情況下都很正常。我想我們可以想出一些用戶被引用的情況(作爲'讀者'或某事),但他們從不登錄系統,但我們會爲此做些工作。 – Thomas 2011-02-24 10:33:58

相關問題