Ik ben met een klein projectje bezig, waarin ik een aantal instellingen heb. Om met deze instellingen te werken heb ik een class geschreven, welk een viertal instance variablen bevat, en een viertal properties. Tevens is een constructor. Dat ziet er dus ongeveer zo uit:
Om deze instellingen persistent te maken wil ik dus de class serializen naar Xml, en dat in een bestandje zetten. Maar zoals te zien is er ook een password veld, en het is natuurlijk niet de bedoeling dat dat zo uit het bestandje te lezen valt. Dus om dat op te lossen dacht ik, ik maak gebruik van wat encryptie.
Zo gezegd zo gedaan, ik maak in de constructor twee ICryptoTransform objecten aan, eentje om te encoderen, en eentje om te decoderen. Die zijn dan ook weer instance variablen van de class.
Vervolgens zet ik in de property Password code om het password te coderen en te decoderen bij de get en set stukken.
Dat werkt op zich goed, alleen is het probleem nu dat op het moment dat ik de class ga serializen hij niet de instance variablen, maar de waarden van de properties in het bestand op slaat. Met als gevolg dat het wachtwoord alsnog in plain text in het Xml documentje staat.
Kortom, hij moet de instance variablen opslaan, en niet de properties. Hoe kan ik er voor zorgen dat ie dat doet?
code:
1
2
3
4
5
6
7
8
9
| private string ipaddress; // The IP address of the database server
private int port; // The port at which the database runs
private string username; // The username with which to connect to the database
private byte[] password; // The password associated with the user
public string IPAddress { get { return ipaddress; } set { ipaddress = value; } }
public int Port { get { return port; } set { port = value; } }
public string Username { get { return username; } set { username = value; } }
public string Password { <code> } |
Om deze instellingen persistent te maken wil ik dus de class serializen naar Xml, en dat in een bestandje zetten. Maar zoals te zien is er ook een password veld, en het is natuurlijk niet de bedoeling dat dat zo uit het bestandje te lezen valt. Dus om dat op te lossen dacht ik, ik maak gebruik van wat encryptie.
Zo gezegd zo gedaan, ik maak in de constructor twee ICryptoTransform objecten aan, eentje om te encoderen, en eentje om te decoderen. Die zijn dan ook weer instance variablen van de class.
Vervolgens zet ik in de property Password code om het password te coderen en te decoderen bij de get en set stukken.
Dat werkt op zich goed, alleen is het probleem nu dat op het moment dat ik de class ga serializen hij niet de instance variablen, maar de waarden van de properties in het bestand op slaat. Met als gevolg dat het wachtwoord alsnog in plain text in het Xml documentje staat.
Kortom, hij moet de instance variablen opslaan, en niet de properties. Hoe kan ik er voor zorgen dat ie dat doet?