SecureString effektiv nutzen und verwenden

Mit Hilfe der Klasse SecureString ermöglicht das .NET-Framework auch String Daten nicht vollig entblößt im Arbeitsspeicher abzulegen, um z.B. den Zugriff von anderen Applikationen zu vermeiden. Leider ist mit SecureString nicht allzu einfach umzugehen und es kommt vor, dass man diesen für Momentaufnahmen dennoch als normalen String im Speicher benötigt, um damit z.B. den Inhalt in einer Oberfläche anzuzeigen oder um die Daten speichern zu können. Hier kann mit der Hilfe von Datentyp-Extensions gut Abhilfe geschaffen werden. So können wir uns Methoden implementieren, die es uns ermöglichen auch den SecureString wieder im Quellcode effektiv zu nutzen und dennoch parallel die Sicherheit zu verbessern (auch wenn zur absoluten Sicherheit die Rückwandlung nicht möglich sein sollte). Weiterlesen

Unerwünschte Zeichen aus einem String entfernen mittels Regex.Replace

Mit der Hilfe von Regex.Replace lässt sich auf einfache Art und Weise unerwünschter Inhalt aus einem String entfernen. Das Einzige was hierfür gekonnt sein muss, ist es Regex-Expressions schreiben zu können. Hilfe zu Regex findet man unter anderem bei Wikipedia. Der Quellcode um z.B. aus einer Eingabe alle Nicht-Zahlen-Zeichen zu entfernen könnte wie folgt aussehen:

string input = "Some random Input 123 with some numeric 456 numbers inside 789!";

Regex regex = new Regex("[^0-9]+");
string result = regex.Replace(input, string.Empty); //Ergebnis in "result" sollte nun "123456789" sein.

Viel Spaß beim Experimentieren. 🙂 Weiterlesen

Der Weg zum eigenen MVVM-Framework – Part 3 (Einbindung der Core-Funktionalität)

Dieses Mal wollen wir uns darum kümmern, die noch offene Kern-Funktionalität komplett einzubinden. Dies wäre jedoch für die erste Version dieses Frameworks lediglich eine Klasse welche die Standard.NET-String-Klasse um einige Funktionen erweitert. Aber nichts des so trotz lasst und damit beginnen, den auch diese Klasse will erst mal geschafft sein! Beginnen wir also erneut damit, zunächst die Ordner Struktur festzulegen, in welcher unsere Klasse einmal liegen soll.Anschließend werden wir wieder die leere Klasse definieren. Wenn dies auch geschehen ist, wird es aufgrund des Grey-Box-Testverfahren dazu übergehen, die UnitTests zu implementieren. Und zu guter Letzt wird natürlich wieder die eigentliche Funktionalität implementiert. Nun gut, also lasst uns beginnen!
Weiterlesen