2009-10-04 88 views
2

我有一個Users表和HashedPassword列是二進制(16)類型。它用於存儲MD5哈希。爲了生成散列,我創建了一對存儲過程:CreateUser,EditUser和LoginUser。他們有一個參數,以明文形式接受密碼,將其轉換爲MD5散列並在表中存儲/查找散列。哈希密碼和實體框架

問題是我該如何適應實體框架?我試圖在用戶實體中創建一個額外的'密碼'字段,然後我將該字段與存儲過程連接,但我得到一個錯誤,指出這個新密碼字段沒有連接到用戶表中的列。

我剛開始使用實體框架,所以我可能錯過了一些明顯的東西。也許我應該在.net而不是數據庫中保存哈希代碼。

回答

2

我認爲最簡單的方法就像你所說的那樣:在.net中保存哈希代碼。

不知道是否可以將EDM配置爲按需要工作,但將安全邏輯,數據訪問層和存儲層解耦合聽起來像是邏輯。

1

你看過Membership框架嗎?它處理所有用戶,密碼,登錄,角色等不愉快的事情。

此外,由於我已在prior posts管理,MD5是不安全的。 AES或BCrypt是今天更安全的散列方式。