中等信任允许哪些反射权限?

Posted

技术标签:

【中文标题】中等信任允许哪些反射权限?【英文标题】:What Reflection Permission are allowed in Medium Trust? 【发布时间】:2011-06-07 02:38:22 【问题描述】:

我想问一下 Medium Trust 允许哪些方法/类。 例如, 是否允许这些方法?

获取属性, 获取方法, Activator.CreateInstance, 组装版本, 程序集名称.名称

请告诉我哪些方法是允许的。

【问题讨论】:

【参考方案1】:

GetMethods 和 Activator.CreateInstance 应该允许 IIRC,而 AssemblyName 和 Assembly.Version 不允许。我在中信任环境中使用了前两种方法,后两种方法不起作用。 最好的方法就是通过反复试验。当您遇到困难时,也可以通过使用 Reflector 来找出 为什么 的东西是不允许的(通常是 [PrincipalPermission(SecurityAction.Demand, AspNetHostingPermission.High/Full)] 属性在某个更高的类上调用堆栈)。

HTH,

本杰明

【讨论】:

我觉得这很令人沮丧,因为我们无法知道哪些方法可用,哪些方法不可用?【参考方案2】:

permview(仅限.NET 1.1)或permcalc(.NET 2.0)等工具可以帮助您了解您的程序集或程序集需要的安全权限要求;这比进行试错分析要容易一些,因为您可能会忘记手动执行尝试执行与安全相关的需求的代码路径。

不幸的是,MSDN 文档没有明确列出每个方法或属性调用的安全要求。

【讨论】:

以上是关于中等信任允许哪些反射权限?的主要内容,如果未能解决你的问题,请参考以下文章

中等信任的匿名类型,使用反射而不是表达式

中信任文件 I/O 权限

在哪里可以了解 .NET 框架中的权限?

哪些 ORM 在中等信任下工作?

我可以使文件夹在中等信任下可写吗?

中等信任下的进程内数据库选项