C# 在Azure上托管的ASP.net项目中调用Process.Start(“foo.exe”)。如何限制“foo.exe”的访问?

C# 在Azure上托管的ASP.net项目中调用Process.Start(“foo.exe”)。如何限制“foo.exe”的访问?,c#,asp.net,.net,azure,exe,C#,Asp.net,.net,Azure,Exe,因此,我在Azure上托管了一个ASP.net项目,该项目运行用户提供的.exe可执行文件 把它想象成一个在线网络终端模拟器 我正在用Process.Start运行提交的exe 如何在运行用户提供的可执行文件时指定访问限制 例如,我希望在特定目录中对执行进行沙箱处理,以便恶意exe无法在其他位置查看或复制我的文件 我希望exe进程在5分钟后超时,这样它就不会占用我的进程池 基本上,我想在一个非常受控、安全的环境中运行exe,当它做任何可疑的事情时,我就杀死它 在Azure上托管的ASP.net项

因此,我在Azure上托管了一个ASP.net项目,该项目运行用户提供的.exe可执行文件

把它想象成一个在线网络终端模拟器

我正在用Process.Start运行提交的exe

如何在运行用户提供的可执行文件时指定访问限制

例如,我希望在特定目录中对执行进行沙箱处理,以便恶意exe无法在其他位置查看或复制我的文件

我希望exe进程在5分钟后超时,这样它就不会占用我的进程池

基本上,我想在一个非常受控、安全的环境中运行exe,当它做任何可疑的事情时,我就杀死它


在Azure上托管的ASP.net项目中,最好的方法是什么?

关于这方面的文档很少,但在Windows Azure网站中,PAAS 您的网站位于:

d:\home\site\wwwroot

实际映射为:

C:\DWASFiles\Sites\[您的网站名称]

您无法访问Azure网站中C:分区中该文件夹上方的任何父文件夹。但您可以完全访问其他驱动器。D:

Microsoft Azure网站是一个托管解决方案,因此您对部署或访问限制的控制将更少。为了更细粒度地控制部署\施加访问限制,我建议采用Windows Azure虚拟机\ Web角色

希望以上信息对您有所帮助!!快乐编码

将解释如何使用AppDomain类对应用程序进行沙箱处理。 将解释如何将可执行文件加载到AppDomain。 请注意,这仅适用于.NET可执行文件


祝你好运

它托管在Azure网站上,不确定是IAAS还是PAAS。我的意思是,它只适用于以CLR为目标的托管代码。如果您有一些以win32 api为目标的exe,则无法以这种方式加载它。