2016-11-23 2 views
0

Я использую ASP.NET MVC 4 Runtime и записываю зашифрованные данные в свою базу данных с помощью функции.Как расшифровать данные для просмотра MVC?

public string Encrypt(string encryptMe) 
{ 
    return Helpers.Encryptor.Encrypt(encryptMe); 
} 

По возвращении данные отображаются следующим образом:

@foreach (var item in Model) { 
<tr> 
    <td> 
     @Html.DisplayFor(modelItem => item.Phone) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.Name) 

Я хочу, чтобы расшифровать данные перед отображением его здесь с помощью следующей функции:

public static string Decrypt(string decryptMe) 
{ 
    return Helpers.Encryptor.Decrypt(decryptMe); ; 
} 

Как я могу расшифровать мой данные?

+1

Почему вы не можете расшифровать свойства модели в контроллере, прежде чем возвращать представление? – David

+0

Как бы я сделал, что Дэвид? –

+0

Я пробовал это: public string d_Name {get {return Decrypt (_name);}, set {_name = Decrypt (value);}}, а затем ищет model.d_Name на экране View. Это вызвало ошибку базы данных, поскольку она, вероятно, ожидала найти это значение в базе данных. Модель, поддерживающая контекст «BookingDBContext», изменилась с момента создания базы данных. –

ответ

1

Добавить объект в модель под названием «DecryptedPhone».

Это будет только получить и будет вызывать функцию дешифрования:

public string DecryptedPhone 
{ 
     get 
     { 
     return Decrypt(Phone); 
     } 
} 

private string Phone; 

телефон будет частным, так что она не может быть доступна.

+0

Я реализовал это решение, и оно работает. –

1

В способе вашего контроллера перед строкой return View(model); вы можете расшифровать свойства. Это будет примерно так:

foreach (var item in model) 
{ 
    item.Phone = Decrypt(item.Phone); 
    item.Name = Decrypt(item.Name); 
} 

return View(model); 
+0

Не изменит ли это первоначальные значения, Дэвид? –

+0

Это изменяет значения в вашей модели. Затем вы можете использовать обычные поля редактирования, чтобы пользователи могли редактировать значения. Затем, прежде чем сохранять их обратно в базу данных, вы снова зашифровываете их. – David