我要求对程序集进行限制,以便只有使用给定密钥签名的程序集才能使用它。我没有经验,但我理解的是签名是为了帮助确定谁创建了程序集。因此,仅签署此程序集不足以确保所有调用程序集都已签署。可能反过来是正确的,即如果一个程序集被签名,它所依赖的所有程序集都应该被签名(也许通过相同的密钥)。满足要求的方法是什么?
问问题
427 次
1 回答
4
您可以使用PublisherIdentityPermissionAttribute。
如果将 PublisherIdentityPermissionAttribute 应用于 MyClass 类,则只有由mycert.cer
证书签名的程序集中的类才能使用您的类。你需要把SecurityAction.Demand
调用堆栈中的所有调用者都必须被授予当前权限对象指定的权限
使用喜欢
[PublisherIdentityPermission(SecurityAction.Demand, CertFile = "mycert.cer")]
public class MyClass
您还可以在程序集级别使用它来保护整个程序集(但是,除非您在配置中设置,否则程序集级别的安全性自 .Net 4.0 起将不起作用<NetFx40_LegacySecurityPolicy enabled="true"/>
)。
于 2012-12-12T09:39:27.647 回答