Сначала я пытаюсь реализовать шифрование с использованием кода 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, так что прости меня, если я упускаю что-то очевидное здесь:)