我需要在程序集中实现限制,只有使用给定密钥签名的程序集才能使用它。虽然我不是很有经验,但我了解到签名的目的是为了帮助确定程序集的创建者。因此,仅签署此程序集应该无法确保所有调用程序集都已签名。相反的可能更为准确,即如果一个程序集被签名,则它所依赖的所有程序集都应该由相同的密钥签名。那么满足需求的方法是什么呢?
[PublisherIdentityPermission(SecurityAction.Demand, CertFile = "mycert.cer")]
public class MyClass
您还可以将其用于汇编级别,以保护整个汇编(但自 .Net 4.0 起,汇编级别安全性将不起作用,除非在配置中设置 <NetFx40_LegacySecurityPolicy enabled="true"/>
)。