6

我要求对程序集进行限制,以便只有使用给定密钥签名的程序集才能使用它。我没有经验,但我理解的是签名是为了帮助确定谁创建了程序集。因此,仅签署此程序集不足以确保所有调用程序集都已签署。可能反过来是正确的,即如果一个程序集被签名,它所依赖的所有程序集都应该被签名(也许通过相同的密钥)。满足要求的方法是什么?

4

1 回答 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 回答