Попробуйте наследовать MyDefectRepositoryWithEncryptedPasswords
от MyDefectRepository
. В конструкторе MyDefectRepositoryWithEncryptedPasswords
расшифруйте пароль и передайте его конструктору MyDefectRepository
, например:
class MyDefectRepositoryWithEncryptedPasswords : MyDefectRepository
{
public MyDefectRepositoryWithEncryptedPasswords(string url, string userName, string encryptedPassword)
: base(url, userName, Decrypt(encryptedPassword))
{
}
public static string Decrypt(string encrypted)
{
// Do whatever...
}
}
В любом случае, я не думаю, что вы должны хранить зашифрованные пароли с помощью двусторонних методов шифрования. Вы должны использовать какое-то хеширование (криптографическое) и сравнить хэши. Для этого потребуется изменить конструктор, чтобы получить не пароль, а его хеш.