为什么具有AllowPartiallyTrustedCallers SecurityCritical的程序集中的公共枚举类型?

时间:2017-02-13 05:21:42

标签: asp.net .net vb.net security code-access-security

我在ASP.Net应用程序中遇到此错误:

" 尝试使用安全透明方法 Field.set_FieldType(Constants.DataTypeEnum) 来访问安全关键类型 Constants.DataTypeEnum 失败。 "

安全关键类型DataTypeEnum是程序集中具有AllowPartiallyTrustedCallers属性的公共枚举类型。 (DataTypeEnum也在任何类或模块之外声明。它没有SecurityCritical属性。

因此默认情况下不应该是SecurityTransparent吗? 有谁知道为什么SecurityCritical

更新

我正在尝试在沙箱/远程应用程序域中动态加载和运行代码。

我现在没有收到错误。尝试了很多事情。尝试将枚举放入模块中。有一次我得到了错误," 找到的程序集的清单定义与程序集引用"不匹配,Constants程序集是沙箱代码使用的。我杀死了ASP.Net进程并删除了' Windows \ Microsoft.NET \ Framework \ Temporary ASP.Net Files '中的app子目录。现在它正在发挥作用。

如果我在模块外面声明枚举,我现在会收到错误" 无法加载类型' Constants.ReportType'从汇编... "。如果我将它们放回模块中,它可以工作,但我不相信这是原始错误的原因。

0 个答案:

没有答案