我想在我的API上运行第三方.NET程序集.我想让它按自己的意愿调用自己的方法和对象,但是拒绝它访问我的API没有明确给出的任何东西.特别是,如果我的API将对象传递给第三方代码,因为IMyObject我不希望它们使用反射或任何方法来提升该对象,比如MyObject实现接口.
有没有办法否认在第三方程序集中使用反射的能力?我完全控制了一切,所以我不需要阻止人们反编译我的程序集,只是在运行时滥用它.
您正在寻找的是在沙箱中运行程序集。这可以通过 .Net 来实现CAS (Code Access Security)。
下面是它的工作原理。您创建一个AppDomain,为其分配有限的权限。例如,您允许显示 UI,但不允许使用文件系统或反射。然后将程序集加载到其中并让它运行。
.Net 4.0 引入了全新的安全模型。但我对此了解不多。
这里有一些可以帮助您开始的东西:
探索使用 .NET Framework 2.0 安全托管不受信任的加载项的技术
| 归档时间: |
|
| 查看次数: |
1203 次 |
| 最近记录: |