限制未签名程序集对程序集的使用

  • 本文关键字:程序集 c# .net
  • 更新时间 :
  • 英文 :


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

您可以使用 PublisherIdentityPermissionAttribute。

如果将 PublisherIdentityPermissionAttribute 应用于 MyClass 类,则只有由mycert.cer证书签名的程序集中的类才能使用您的类。你需要放SecurityAction.Demand

调用堆栈中较高的所有调用方都必须已授予 当前权限对象指定的权限

[PublisherIdentityPermission(SecurityAction.Demand, CertFile = "mycert.cer")]
public class MyClass 
还可以在程序集级别

使用它来保护整个程序集(但是,除非在配置中设置<NetFx40_LegacySecurityPolicy enabled="true"/>,否则程序集级别安全性从 .Net 4.0 开始不起作用)。

最新更新