Ich habe diese POCO-Klasse:
class Users
{
public string User { get; set; }
public string Password { get; set; }
private string Encrypt(string plainText)
{
...
return encryptedText;
}
private string Decrypt(string cipherText)
{
...
return decryptedText;
}
Wie kann ich das Password
verschlüsseln / verschlüsseln, wenn ich Daten aus meiner Datenbank lese und wenn ich von C # aus auf mein POCO-Objekt zugreife?
Ich werde versucht, etwas wie folgt zu verwenden:
class Users
{
private string _password;
public string User { get; set; }
public string Password
{
get
{
return Encriptar(_password);
}
set
{
_password = Desencriptar(value);
}
}
private string Encrypt(string plainText)
{
...
return encryptedText;
}
private string Decrypt(string cipherText)
{
...
return decryptedText;
}
Aber wenn die Objekte mit Daten aus meiner Datenbank gefüllt sind, ist alles in Ordnung, das Password
Feld entschlüsselt korrekt, aber wenn ich auf ein Objekt von C # zugreife, um es im Textfeld anzuzeigen get
ruft die Eigenschaft get erneut meine Daten auf: /
Das hat nichts mit Dapper zu tun. Beachten Sie auch die Kommentare von anderen zu Ihrer Frage.
Im Folgenden wird nur vorgeschlagen, wie die Entschlüsselung im get
Block zweimal vermieden werden kann.
private string _password;
private bool _isDecrypted = false;
public string Password
{
get
{
if(_isDecrypted == false)
{
_password = Decrypt(_password);
_isDecrypted = true;
}
return (_password);
}
set
{
_password = Encrypt(value);
_isDecrypted = false;
}
}