2012-01-24 55 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