Quelque chose comme la fonction ci-dessous prendrait soin de la fin de la question Unix/Mono. D'ailleurs, je n'ai pas compilé ni exécuté cela, mais vous avez l'idée.
private bool AmIRoot()
{
//Declarations:
string fileName = "blah.txt",
content = "";
//Execute shell command:
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents=false;
proc.StartInfo.FileName = "whoami > " + fileName;
proc.StartInfo.Arguments = "";
proc.Start();
proc.WaitForExit();
//View results of command execution:
StreamReader sr = new StreamReader(fileName);
content = sr.ReadLine();
sr.Close();
//Clean up magic file:
File.Delete(fileName);
//Return to caller:
if(content == "root")
return true;
else
return false;
}
Oui, la fusion peut-être les deux approches ... Je pourrais réussit également exécuter whoami de Process.Start et lire la sortie standard est –
pourquoi ne pas System.Environment.UserName == « root »? –
@mhutch: sonne mieux ... –