为 C# 评估程序提供沙盒应用程序域的最佳证据

Posted

技术标签:

【中文标题】为 C# 评估程序提供沙盒应用程序域的最佳证据【英文标题】:Best evidence to offer a sandboxed appdomain for a C# evaluator 【发布时间】:2010-05-10 21:55:06 【问题描述】:

我有一个 c# 评估器,它使用(我认为).Net 4 新的简化沙盒 appdomain 模型来托管 c# 程序集,其余的由远程处理完成。创建appdomain的调用是

        Evidence ev = new Evidence();
        ev.AddHostEvidence(new Zone(SecurityZone.Trusted));
        PermissionSet pset = SecurityManager.GetStandardSandbox(ev);

        AppDomainSetup ads = new AppDomainSetup();
        ads.ApplicationBase = "C:\\Sandbox";

        // Create the sandboxed domain.
        AppDomain sandbox = AppDomain.CreateDomain(
           "Sandboxed Domain",
           ev,
           ads,
           pset,
           null);

c# eval 嵌入在服务器应用程序中,但我不想给沙箱太多控制权,除非它是调用者。我正在寻找的是关于提供什么作为来自呼叫者的证据的一些澄清。我正在寻求建议和指导。

任何帮助将不胜感激。

【问题讨论】:

“除非它是调用者,否则要进行太多控制” - 什么? 没有人使用沙盒应用程序域? 呃..不是吗? :-) 好吧,至少我从不运行我不完全信任的代码。除了 python,我从不信任它。 【参考方案1】:

您可以使用“Internet”权限集或“执行”权限集,两者都具有有限的权限,因为它们被认为是不安全的。

【讨论】:

谢谢亚当,看来我们是唯一使用这种方法的两个人。 我不使用它,但它包含在其中一项 MCTS 考试中 - 我相信是 70-536。很高兴它对某人有用!

以上是关于为 C# 评估程序提供沙盒应用程序域的最佳证据的主要内容,如果未能解决你的问题,请参考以下文章

Apache如何根据路径为来自同一域的更多应用程序提供服务?

c#:具有多个应用程序域的单个进程 VS 多个进程

C# 布尔评估未按预期进行评估

在 C# 沙箱中运行非托管 EXE

为 C# 程序员学习 C++ 的最佳场所 [关闭]

评估连接速度的最佳方法