Реализация шифрования ValueConverter с DataProtectionProvider с использованием пользовательского атрибута - PullRequest
0 голосов
/ 26 марта 2019

Сначала я пытаюсь реализовать шифрование с использованием кода Entity Framework Core.Я хотел бы использовать пользовательский атрибут, чтобы определить, какие поля должны быть зашифрованы / расшифрованы.Мои проблемы возникают при попытке вставить DataProtectionProvider в конвертер и «защитить» / «снять защиту» внутри выражений конвертера.Я также хотел бы определить назначение поставщика защиты в вызове моего конвертера внутри OnModelCreating.

Как я могу внедрить экземпляр IDataProtectionProvider в мой преобразователь значений шифрования и установить цель на основе имени объекта в OnModelCreating?

Я использовал эту ссылку для моей реализации.

Вот ValueConverter, который я хотел бы использовать DI вместо непосредственного создания зависимости

public class EncryptedConverter : ValueConverter<string, string>
    {
        private static IDataProtector dataProtectorProvider = 
            DataProtectionProvider.Create("appName").CreateProtector("purpose");
        public EncryptedConverter(ConverterMappingHints mappingHints = default)
        : base(EncryptExpr, DecryptExpr, mappingHints)
        {
        }

        static Expression<Func<string, string>> DecryptExpr = 
            x => new string(dataProtectorProvider.Unprotect(x));
        static Expression<Func<string, string>> EncryptExpr = 
            x => new string(dataProtectorProvider.Protect(x));
    }

Любая помощь будет принята с благодарностью!Я новичок в .NET Core, так что прости меня, если я упускаю что-то очевидное здесь:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...