限制 MS 脚本引擎中命名空间的使用

发布于 2024-12-01 20:35:55 字数 361 浏览 0 评论 0原文

.NET Framework 具有支持在运行时编译代码并运行它的强大功能,以实现某些类型的脚本功能。 CodeProject 上已经有一些可用的脚本引擎,微软也有自己的库。

我正在开发一个网络自动化软件,我想在应用程序中包含 Microsoft 脚本引擎。

问题是脚本引擎允许在引用的程序集中使用所有命名空间,而我想将使用限制为选定的几个命名空间。

using System; // allowed.
using System.Linq; // allowed.
using System.Reflection; // restrict.

如何在脚本中限制命名空间的使用。

The .NET Framework has great features to support compiling code at runtime and running it, to achieve some kinds of scripting functionalities. There are already some scripting engines available on CodeProject, and Microsoft has its own library as well.

I am working on a web automation software, I want to include the Microsoft scripting engine in the application.

The problem is the scripting engines allow Using all namespace, in the referenced assembly, and I want to restrict the usage to a selected few namespace.

using System; // allowed.
using System.Linq; // allowed.
using System.Reflection; // restrict.

How to restrict the use of namespaces, in the scripts.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

江挽川 2024-12-08 20:35:55

按名称限制命名空间并不能起到多大作用,因为扩展只能在其自己的程序集中包含您不喜欢的类的副本,但只是重命名。

听起来您真正想要的是安全边界。将扩展放入不受信任的 AppDomain 中。

Restricting namespaces by name doesn't accomplish much since the extension can just include a copy of the class you don't like in its own assembly, but just renamed.

It sounds like what you really want is a security boundary. Put the extension in an untrusted AppDomain.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文