Security 将Assembly.LoadFrom(字符串,证据)调用替换为Assembly.LoadFrom(字符串)-.NET 4

Security 将Assembly.LoadFrom(字符串,证据)调用替换为Assembly.LoadFrom(字符串)-.NET 4,security,c#-4.0,c#-2.0,code-access-security,assembly-loading,Security,C# 4.0,C# 2.0,Code Access Security,Assembly Loading,我必须将一些旧的.net2代码移到.net4项目中。它有下一行: `return Assembly.LoadFrom(filePath, Assembly.GetExecutingAssembly().Evidence);` 正如微软的()中所说: 注意:此API现在已过时。非过时的替代方法是LoadFrom(String) 我不熟悉证据类。仅从调用中删除证据参数的风险是什么?当需要证据参数时,实际情况是什么 提前感谢您的帮助证据参数用于提供代码访问安全性(CAS)策略机制在决定向正在加载的程

我必须将一些旧的
.net2
代码移到
.net4
项目中。它有下一行:

`return Assembly.LoadFrom(filePath, Assembly.GetExecutingAssembly().Evidence);`
正如微软的()中所说:

注意:此API现在已过时。非过时的替代方法是LoadFrom(String)

我不熟悉
证据类。仅从调用中删除
证据
参数的风险是什么?当需要
证据
参数时,实际情况是什么


提前感谢您的帮助

证据参数用于提供代码访问安全性(CAS)策略机制在决定向正在加载的程序集授予哪些CAS权限时可以使用的数据。但是,在.NET 4.0中,“裸”CLR不再使用CAS策略(,),因此API中使用的证据已被弃用。通常只有两个原因可以解释为什么在针对早期.NET版本的LoadFrom调用代码中提供证据:

  • 允许程序集以比其他方式授予的权限更多的权限运行,或
  • 若要限制程序集的权限,请删除本应在该程序集的默认证据下授予的权限
  • 对于#1,您可能在.NET4.0中无事可做,因为默认情况下,所有代码都将以不受限制的CAS权限(也称为“完全信任”)运行。对于#2,建议的方法是使用