2012-01-24 39 views
0

好的。所以我有這個控制器檢索用戶密碼。從控制器遍歷列表查看

Function ViewUsers(ByVal users As Users) As ViewResult 

     Dim pwordList = New List(Of String)() 
     Dim passdecList = New List(Of String)() 
     Dim pwordQuery = From pword In db.UsersDB 
         Select pword.Password 


     For Each pass As String In pwordList 

      passString = PassEncrypt.Decrypt(pass) 

      passdecList.Add(passString) 
      //send each decrypted password to a table Password column in the view 
     Next 

    End Function 

我不知道我該怎麼做。

+3

不要存放在可逆形式的密碼,並** **從來沒有(_千萬!_)將它們顯示給管理員。 – SLaks

回答

0

您不應該在數據庫中以明文形式存儲密碼。他們應該始終加密。但對於這個例子的目的,你可以做到以下幾點:

Function ViewUsers(ByVal users As Users) As ViewResult 
    Dim pwordList = db.UsersDB.Select(Function(u)u.Password).ToList() 
    return View(pwordList) 
End Function 

和你的強類型的視圖中:

@ModelType List(Of string) 
<table> 
    <thead> 
     <tr> 
      <th>Password</th> 
     </tr> 
    </thead> 
    <tbody> 
     @For Each password In Model 
      @<tr><td>@item</td></tr> 
     Next password 
    </tbody> 
</table> 
+0

他正在加密它們(請參閱'PassEncrypt.Decrypt')。他們應該總是**哈希**。 – SLaks

+0

是的,我創建了一個函數來加密和解密密碼。所以加密的密碼在我的數據庫。正如你可以在我的控制器中看到的那樣,我使用linq從db中選擇密碼並加密每個密碼並將它們添加到列表中。在我看來,我爲每個循環創建了一個迭代通過數據庫的循環,但是爲每個循環的每個循環內的另一個循環都會導致行的冗餘。 – yawanur03