0

Process.StartAzure には、バックグラウンド プロセス (実行する必要があるネイティブ アプリケーションをホストする) を開始するために使用する worker ロールがあります。

FxCopでは、リンク要求が原因でCA2122エラーが大量に発生します。この属性を追加しようとしたとき:

[PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust")]

次に、代わりにCA2135を取得し始めました。解決策は、代わりに SecurityCritical 属性を追加することです。

しかし、私は再び CA2122 を手に入れました。

これらのことのいずれかが問題ですか?セキュリティ上の問題が発生していないことをどのように確認できますか?

4

1 に答える 1

1

SecurityCritical は、完全な信頼のために LinkDemand と同等の役割を果たす必要があります。

SecurityCriticalAttribute は、完全信頼のリンク要求に相当します。SecurityCriticalAttribute でマークされた型またはメンバーは、完全に信頼されたコードによってのみ呼び出すことができます。特定の権限を要求する必要はありません。部分的に信頼されたコードから呼び出すことはできません。

したがって、(CA2135 のニーズを満たすために) SecurityCritical を追加し、CA2122 を抑制することをお勧めします。これはおそらく、Microsoft がコード分析で新しいソリューションを説明するのを忘れているためです。

CA2122 の目的は、メソッドが...

リンク要求で保護されたメンバーへのセキュリティで保護されていないアクセスを提供しなくなりました。

SecurityCritical が追加されると、これは当てはまりません (完全に信頼されたコードによってのみメンバーを呼び出すことができます)。そのため、2 番目の CA2122 は誤検知です。

于 2012-10-30T16:15:00.377 に答える