2012-02-08 188 views
1

這裏是我的問題,如果我可以這樣調用它。我已經實現了在asp.net mvc 2.0中的自定義memebership提供程序的身份驗證。一切運作良好,但我有一個問題。當用戶登錄他提供了它的用戶名和密碼,我通過MSSQL中的數據庫進行檢查,然後驗證用戶並傳遞並使用FormsAuthentication將UserName設置爲配置文件信息。使用身份驗證的ASP.NET MVC 2

但是,當該用戶想要創建僅屬於他的新項目(可以說出售或什麼的),並且可以列出與用戶創建的其他項目我可以使用此用戶名(在FormsAuthentication)在數據庫中檢查它並使用外鍵將該項目連接到適當的用戶,但是如果用戶名是唯一的,那麼該項目就可以工作,所以我需要額外的信息,比如數據庫表「用戶」的ID列以便稍後存儲和使用它,所以什麼是最安全和「最佳實踐」用戶的其他信息並稍後使用它,因爲我提到的用戶名在數據庫中必須是唯一的,並且它沒有足夠的關於登錄用戶的信息。

回答

2

難道你不能在會話中存儲用戶對象(或任何其他信息)嗎?或者在客戶端使用cookie(如果你需要在用戶關閉瀏覽器之後堅持登錄狀態等)?讓我知道你是否需要特定的例子。

編輯:看了您的意見後,如果您正在尋找一個「安全cookie」的解決方案來看看這個:http://www.codeproject.com/Articles/13665/HttpSecureCookie-A-Way-to-Encrypt-Cookies-with-ASP

我用它來存儲用戶的ID(只有他的ID)。當我檢索這個cookie時,我加載了給定他的ID的用戶。一些內存中緩存允許我避免在每個請求中加載用戶。

但只是想澄清,會話對象似乎對你正在做的事情很好+你不必擔心安全性(對於普通的應用程序來說)。

+0

我發現會話不是最安全的方式來做這些東西..我有我的代碼,但這是我現在需要的ony功能..我在這裏找到了一些在stackoverflow的示例,但想給另一個嘗試從其他角度 – 2012-02-09 09:45:38

+0

爲什麼不呢?該會話純粹存儲在服務器上,因此比將內容放在cookie上更安全。我使用cookies來保存用戶數據,並且每次需要讀取/更新時都必須加密/解密它們。 – Yannis 2012-02-09 13:00:20

+0

加密/解密的方式,我對它的好方法,但我從來沒有使用過,因爲我是新的asp.net mvc。我發現了幾個例子,但想聽到其他想法實現這個功能或其他方式... – 2012-02-09 17:08:29