6

特定のキーで署名されたアセンブリのみがそれを使用できるように、アセンブリに制限を設ける必要があります。私は経験が浅いですが、アセンブリの作成者を特定するために署名が行われることを理解しています。したがって、このアセンブリに署名するだけでは、すべての呼び出し元アセンブリが署名されていることを確認するのに十分ではありません。おそらくその逆です。つまり、アセンブリが署名されている場合、それが依存するすべてのアセンブリが (おそらく同じキーによって) 署名されている必要があります。要件を満たすにはどのような方法がありますか?

4

1 に答える 1

4

PublisherIdentityPermissionAttributeを使用できます。

PublisherIdentityPermissionAttribute を MyClass クラスに適用すると、mycert.cer証明書によって署名されたアセンブリ内のクラスのみがクラスを使用できます。あなたが置く必要がありますSecurityAction.Demand

コール スタックの上位にあるすべての呼び出し元には、現在のアクセス許可オブジェクトで指定されたアクセス許可が付与されている必要があります。

のように使う

[PublisherIdentityPermission(SecurityAction.Demand, CertFile = "mycert.cer")]
public class MyClass 

アセンブリ レベルで使用して、アセンブリ全体を保護することもできます (ただし、アセンブリ レベルのセキュリティは<NetFx40_LegacySecurityPolicy enabled="true"/>、構成で設定しない限り、.Net 4.0 以降では機能しません)。

于 2012-12-12T09:39:27.647 に答える