Auf TheScarms.com [1] findet sich ein ganz nützlicher Artikel um externe Programme z.B. auf der CommandLine zu starten und sie zu überwachen bzw. deren Ausgabe weiter zu verwenden.
Ich habe das aktuell gebraucht um in einer ASP.NET Anwendung per OpenSSL-Command-Tool Strings nach bestimmten Vorgaben zu verschlüsseln.
Dazu wird openssl.exe als unsichtbarer Prozess (ohne Fenster) aus der ASP.NET Anwendung mit entsprechenden Parametern gestartet und die Standardausgabe per Streamreader überschrieben und so direkt an die Anwendung zur weiteren Verarbeitung zurückgegeben. Das funktioniert erstaunlicherweise recht flott und stabil.
Kurzer Auszug aus dem C#-Code:
Process myProcess = new Process();
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.CreateNoWindow = true;
myProcess.StartInfo.RedirectStandardOutput = true;
myProcess.StartInfo.RedirectStandardError = true;
myProcess.StartInfo.FileName = @"C:\\windows\\system32\\cmd";
myProcess.StartInfo.Arguments = "/C echo \""+data
+"\" | c:\\openssl\\bin\\openssl enc -a -e -des-ede3-ofb -pass pass:"
+key;
myProcess.Start();
StreamReader sOut = myProcess.StandardOutput;
myProcess.WaitForExit();
string myOutput = sOut.ReadToEnd();
sOut.Close();
myProcess.Close();
return myOutput;
Das Ganze der Einfachheit halber ohne die erweiterten Fehlerprüf-Routinen...
[1] http://www.thescarms.com/dotnet/Process.asp
Geschrieben am ,