【发布时间】:2011-09-28 13:31:12
【问题描述】:
我在使用JSON.Net 序列化库时遇到了问题,我希望得到在 CAS 和 AppDomain 管理方面比我更专业的人的意见。
如需更多问题信息,可以参考issue 21575。我为此问题提交了a patch。
这个想法是当你第一次访问它时,DynamicCodeGeneration 标志在当前应用程序域中被静态设置一次。但是,我认为允许应用程序域的权限可以更改。
例如,如果你在一个应用程序域中调用一个对象的方法,跨越另一个应用程序域,似乎你继承了最严格的应用程序域的权限。所以对我来说,应用程序域的权限不会改变并且您可以一劳永逸地静态设置DynamicCodeGeneration的假设是错误的。
我说的对吗?还是我错过了一些关于 CAS 和 AppDomain 管理的内容?
编辑:
我添加了一个关于我认为正在发生的事情的小架构:http://www.sp4ce.net/data/temp/appdomain.png 你认为这是正确的吗?
【问题讨论】:
-
您是否有关于在跨应用程序域调用中继承更严格的权限的断言的参考?
-
不,我没有任何参考资料,这就是我在这里提出问题的原因。我唯一的提示是我在代码中看到的:一次它说他有权利(即: new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand(); 不抛出异常),第二次,当调用交叉域,它说他不再正确了。
-
您能否详细解释一下每个 appdomain 的血统?他们是否有父/子关系,或者是否正在进行某种远程处理?
-
您好,感谢您的提问。我画了一个我认为正在发生的事情的小模式。我不确定这种权利继承,但它对你来说是否正确? sp4ce.net/data/temp/appdomain.png
-
感谢您的插图。所有这些调用都发生在同一个线程上吗?
标签: c# appdomain json.net code-access-security