Запрос зашифрованных данных в .netcore 2 - PullRequest
0 голосов
/ 14 июня 2019

Я следовал официальному руководству Microsoft по шифрованию и дешифрованию данных.Моя проблема заключается в том, как я могу искать данные базы данных для данного свойства.Например, я хочу запросить все данные в базе данных, где FirstName содержит введенное мной имя поиска.Но FirstName зашифрована в базе данных, так что имеет следующее значение: «CfDJ8GJ0pjnzz6BGph-AUfSYepqLrRxw5zqtqoh540M8wHqnnfZRuH542PMzLClloeYoQAq69kPRmUHnNdfg7J9jHc9ieIe1Vx9I_IQgt-XjUt5QE9lHknB1IKIZW6IAz_zh_w»

1002 * Я могу защитить и снять защиту данных успешно, когда данные были получены, но я не могу запрашивать данные на ходу.Для расшифровки данных я использую _protector.Unprotect (), но когда я помещаю его в where (), он ничего не делает, и я не получаю никаких ошибок.Приведенный выше код по какой-то причине не работает.
var customers = await _context.Customers
            .Include(x => x.CustomerInformation)
            .Include(x => x.CustomerContact)
            .Where(x => _protector.Unprotect(x.CustomerInformation.FirstName).Contains(name))
            .ToListAsync();         

1 Ответ

0 голосов
/ 14 июня 2019

Я исправил это!Проблема возникла, когда имя было создано заглавными буквами.Поэтому мой обновленный код для запроса зашифрованных данных выглядит так:

var customers = await _context.Customers
    .Include(x => x.CustomerInformation)
    .Include(x => x.CustomerContact)
    Where(x => 
            (_protector.Unprotect(x.CustomerInformation.FirstName).ToLower().Contains(name)) ||
            (_protector.Unprotect(x.CustomerInformation.LastName).ToLower().Contains(name)) ||
            (x.CustomerInformation.Code.ToLower().Contains(name))
         )
         .ToListAsync();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...