c# - 如何在 .net 和 IIS 中启动具有受限权限的 native 进程

标签 c# asp.net security iis

我有一个在 .NET 和 IIS 上运行的 Web 应用程序,我需要启动一个 native 进程。但是,这个进程不是完全可信的,所以我需要限制它对系统的访问,具体来说:

  • 阻止所有网络访问
  • 只能访问系统中的特定目录(可在运行时配置)

我不能使用的东西:

  • .NET AppDomains(不适用于 native 可执行文件)
  • 以独立用户身份运行(IIS 没有以不同用户身份运行的权限,而且我还没有找到任何方式授予 IIS 这些权限)
  • 进程上的 UAC(目录访问必须在运行时可配置,而 UAC 似乎不允许这样做)

有谁知道我可以实现这一点的方法吗?

最佳答案

根据进程具体执行的操作,一种选择是让 IIS 向进程发出运行信号,而不是直接运行它。

例如,您可以创建一个简单的 Windows 服务,它从 IIS 接收信号(通过写入队列、在数据库中设置标志或 Windows 上可用的任何 IPC 机制),然后管理该服务的生命周期 native 进程(启动它,例如使用 Runas,等待完成,将结果发送回 IIS)。

如果 native 进程可以转换为 Windows 服务,则可以避免中间“代理”Windows 服务。

关于c# - 如何在 .net 和 IIS 中启动具有受限权限的 native 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21004892/

相关文章:

javascript - SignalR 集线器 : JavaScript runtime error: Unable to get property 'multipleFileHub' of undefined or null reference

javascript - 如何在 c# asp.net 中为文本区域中的特定单词着色

.net - SHA512Managed 是否被认为是 .NET 3.5 中最好的单向哈希以确保安全?

Java 7 小程序的安全限制

java - 在 ejb 方法中访问客户端主体

c# - Enumerable.OrderBy如何使用keySelector

c# - 无法将 WCF 行为扩展添加到端点行为

asp.net - 带有 %3D 的 URL 链接的 IIS URL 重写

c# - 问题复制 C# 枚举器接口(interface)

c# - 使用具有条件延续的任务