1

古い.NET 2コードを.NET 4プロジェクトに移動する必要があります。次の行があります:

`return Assembly.LoadFrom(filePath, Assembly.GetExecutingAssembly().Evidence);`

Microsoft(MSDN)で述べたように:

注:このAPIは廃止されました。廃止されていない代替手段はLoadFrom(String)です。

私はそのEvidenceクラスに精通していません。呼び出しからパラメーターを削除するだけのリスクは何ですか?パラメータが必要なEvidence場合の実際のケースは何ですか?Evidence

助けてくれてありがとう

4

1 に答える 1

3

証拠引数は、ロードされているアセンブリに付与するCAS権限を決定するときにコードアクセスセキュリティ(CAS)ポリシーメカニズムが使用できるデータを提供するために使用されました。ただし、.NET 4.0では、「ネイキッド」CLRはCASポリシーを使用しなくなりました(http://blogs.msdn.com/b/shawnfa/archive/2010/02/24/so-is-cas-dead-in- net-4-or-what.aspxhttp: //blogs.msdn.com/b/shawnfa/archive/2009/06/12/clr-v4-security-policy-roundup.aspx )、証拠の使用APIでは非推奨になりました。通常、以前の.NETバージョンを対象としたコードでLoadFrom呼び出しで証拠を提供した理由は2つだけです。

  1. アセンブリを、他の方法で許可されているよりも多くの権限で実行できるようにする、または
  2. アセンブリのアクセス許可を制限するには、アセンブリのデフォルトの証拠の下で付与されていたはずのアクセス許可を削除します。

#1の場合、すべてのコードはデフォルトで無制限のCAS権限(別名「完全信頼」)で実行されるため、.NET4.0ではおそらく何の関係もありません。#2の場合、推奨されるアプローチは、サンドボックス化されたappdomainを使用することです。

于 2011-07-26T12:01:48.523 に答える