2011-08-04 128 views
0

當用戶登錄時,我需要從ActiveDirectory中檢索一些屬性,例如它們的真實姓名,一些聯繫人等。這些字段中的一些我會以某種形式經常顯示。 ActiveDirectory檢索速度在我的情況下非常糟糕,所以我想知道在登錄時將這些信息存儲在內存中的最佳方式是什麼,然後在它們註銷/超時之後將其刪除?在asp.net中存儲臨時用戶信息的最佳方式是什麼?

我的想法到目前爲止: 1)存儲在會話中,但它是安全的嗎? 2)擴展User.Identity並將其存儲在那裏。不知道這是可能的。 3)將其存儲在某種全球詞典中。我如何知道他們註銷以刪除鍵/值對?

我正在使用MVC2這個項目,我不需要回寫到ActiveDirectory。

回答

1

是的,因爲它說你可以使用配置文件提供程序來存儲數據。 我個人使用會話數據。

我認爲原因如下:

1,通過加場到輪廓數據庫解決方案(如在這裏additionalUserData =數據) 讓它簡單易用,並不需要很長時間來實現的會話處理。

2,會話數據總是在服務器上,在那裏你不需要關心數據庫中的數據,沒有它的工作。 (很少有這樣的項目已經完成) 這是合理保存和易於訪問,你可以添加到期日期時間。你也可以保存更多關於用戶的信息。

3TH選項: 你就必須有時間戳和檢查的時間間隔已過期,刪除此記錄在這種情況下你必須有字典爲每一位用戶的請求......

的問題是你的.. ..

希望它有幫助

1

只要不是大量的數據,我會把它放在會話中。看起來它非常適合會話狀態。如果您使用https,則不應有任何安全問題。

如果您擔心會將會話狀態的數據量考慮在內,您也可以考慮使用ASP.NET Profile Provider,但您需要某種類型的機制來保持數據與AD同步(可能每個用戶登錄的時間)。這就是說,如果數據量不是很大,我認爲會話是一條可行的路。

2

會話對象通常用於存儲信息。如果擔心安全問題,可以使用HTTPS進行通信,也可以使用狀態服務器或SQL Server來存儲該信息。

相關問題