我有一个WCF服务,它使用C#中提供的进程类来执行 .NET exe 文件或 JAVA .class 文件
通过启动新流程执行类文件的示例代码:
public bool Run(string classFilePath, string[] commandLineParameters)
{
var process = new Process { StartInfo = this.GetProcessStartInfoForExecution(classFilePath) };
try
{
process.Start();
process.WaitForExit();
}
catch(Exception e)
{
throw new Exception("Process start caused an exception");
}
if (process.ExitCode != 0)
{
this.WriteErrorToFile(classFilePath, process.StandardError.ReadToEnd());
return false;
}
return true;
}
我已经读过 AppDomain 类可以用于在安全的环境中沙箱和运行程序集,问题是它只能用于托管代码。
所以,我的问题是,有没有办法以安全和受限的方式从C#运行进程,而不仅仅是针对.net程序集,而是对于使用Process类启动的任何进程。
安全且受限制,我的意思是限制对文件,资源的访问以及防止执行任何恶意代码。
谢谢 -