我要求在程序集中有一个限制,以便只有使用给定键签名的程序集才能使用它。我没经验,但据我所知,签署是为了帮助确定谁创建了程序集。因此,仅签署此程序集不足以确保所有调用程序集都已签名。反之亦然,即如果一个程序集已签名,它所依赖的所有程序集都应该签名(也许是同一个键)。什么是满足要求的方式?
答案 0 :(得分:4)
您可以使用PublisherIdentityPermissionAttribute。
如果将PublisherIdentityPermissionAttribute应用于MyClass类,则只有mycert.cer
证书签名的程序集中的类才能使用您的类。您需要放置SecurityAction.Demand
调用堆栈中较高的所有呼叫者都必须已被授予 当前权限对象
指定的权限
使用
[PublisherIdentityPermission(SecurityAction.Demand, CertFile = "mycert.cer")]
public class MyClass
您也可以在装配级别使用它来保护整个装配(但是除非您在配置中设置<NetFx40_LegacySecurityPolicy enabled="true"/>
,否则装配级安全性将无法工作,除非.Net 4.0。