您似乎對您的身份驗證過程相對滿意,但您希望探索會話/設置的其他選項。
我的建議只與設置有關(角色,首選項等)。)
在我看來,不得不遍歷從UI到Business層到DB層到DB的整個技術堆棧有時有點矯枉過正。 對於在會話期間不可能更改的數據,這會增加很多開銷......可能會發生多個數據轉換(DB(關係格式) - > ORM - > Web服務XML序列化 - > Web層反序列化)。
您可能會考慮一個不依賴於沉重的RDBMS系統或ASP.NET緩存/會話模型的會話系統。有很多選項非常高效,並且規模很好。
您可以使用Ayende Rahien的RavenDB(Built for .NET)。其主要目標是提供對無模式JSON文檔的低延遲,高性能訪問。
使用此解決方案,您可以在Web層中設置ravenDB,以便訪問數據的速度非常快。 第一次驗證和檢索設置時,您將在此會話數據庫中存儲用戶ID和設置信息。 之後每次加載控制器時,都可以訪問設置數據,而無需返回到RDBMS。 此數據庫也可用於緩存其他網絡相關數據。
至於安全性,無論您使用何種方法,設置數據都會將其設置到Web層。這個解決方案不會比其他選項更安全(比未加密的cookie更安全)。如果您需要,您可以加密會話數據 - 但這會再次增加您的開銷。
只是百萬選擇中的另一個考慮。
好運,
讓我們知道您的決定!
Patrick。
它是一個好主意,使您的標題描述性。這個頭銜坦率地說沒用。我會用「我應該如何在ASP.Net站點中進行身份驗證?」 – 2010-06-05 03:49:01
聽起來像你的問題主要是關於表現,然後呢?你覺得你經常碰到設置數據庫? – 2010-06-11 17:43:04
我認爲這有一個簡單的mvc(1或2)特定的解決方案,可以在不使用會話的情況下保存數據。 – chobo 2010-06-11 17:50:30