2012-06-04 81 views
0

我有一個包含表如何與實體框架驗證

apsnet_Users 
aspnet_Memberships 

我要檢查用戶名的驗證,並在WCF庫密碼如何實現實體框架模型,

談情我加入會員到app.config,如何實現這樣的事情?

問候

回答

0

我沒有使用實體框架,authontications的其他算法,所以我用會員與SQL直接,Microsaoft加密BU方式,使不易檢索

4

基本(但安全)的用戶名/密碼數據庫應列是這樣的:

UserName  - Text 
PasswordSalt - Binary 
PasswordHash - Binary 

用戶名可以保存爲純文本。

鹽是隨機的字節串,最好至少和散列一樣長。

密碼哈希是密碼+鹽的二進制哈希。

這是給用戶一個新密碼的基本過程。我將以SHA-256哈希值爲例。

  1. 將所需的密碼轉換爲字節數組。
  2. 使用CSPRNG生成另一個字節數組,長度爲32個字節。這是鹽。
  3. 將salt添加到密碼字節數組的末尾。
  4. 使用SHA-256散列密碼。
  5. 將salt存儲在數據庫中。
  6. 將密碼哈希存儲在數據庫中。

然後當用戶在登錄時輸入密碼時,這是過程。

  1. 在數據庫中查找用戶。
  2. 將輸入的密碼轉換爲字節數組。
  3. 將數據庫中的鹽添加到密碼字節數組的末尾。
  4. 使用SHA-256散列密碼。
  5. 如果散列與數據庫中的散列相匹配,則密碼是正確的。

這種密碼驗證方法是高安全性應用的首選方法。這不是很慢,也不是很難實施。最好的情況是,你可以把整個密碼錶給任何你喜歡的人,他們能夠做的最多的就是挑選一個用戶並開始猜測密碼。

+0

我用下面的代碼,但它不工作 – AMH

+0

HTTP ://paste2.org/p/2045735 – AMH

+0

除非你告訴我它是如何工作的,否則我無法幫助你。我在那裏也沒有看到任何哈希代碼。此外,這不是您添加到現有密碼身份驗證的東西。這是整個認證。 –