gpt4 book ai didi

c# - 可以使用 X509Certificate 对 .NET 程序集进行签名吗?

转载 作者:行者123 更新时间:2023-11-30 15:42:51 26 4
gpt4 key购买 nike

我相信我对 X509Certificate 有基本的了解,并且已经为我的开发环境创建了证书和私钥。现在更加熟悉 X509Certificate 类和其他相关权限。

所以在这个过程中,我决定在我的系统上安装证书后测试它。然后使用以下代码,我尝试验证验证身份验证的检查过程:

const string x509Cert = @"\PathToMyCertificate\LMC.cer";
var cert = new X509Certificate(x509Cert);
var pmc = new PublisherMembershipCondition(cert);
if(pmc.Check(Assembly.GetCallingAssembly().Evidence))
{
Console.WriteLine("Assembly belongs to publisher");
}

当然,正如预期的那样,内部代码块不会执行。因此,我想简单地使用证书 key 对我的程序集进行签名,但“简单地”并不像我预期的那么简单。

我使用以下代码将证书分配给我的应用程序证据:

var publisher = new Publisher(X509Certificate.CreateFromCertFile(x509Cert));
var evidence = Assembly.GetCallingAssembly().Evidence;
evidence.AddHost(publisher);

// Create an identity permission based on publisher evidence.
var x509Permission = (PublisherIdentityPermission)publisher.CreateIdentityPermission(evidence);
x509Permission.Demand();

但这似乎也不起作用。接下来,我检查了我的项目的属性,看看是否有任何方法可以使用 X509Certificate key 在那里签名,但没有。我看到的唯一接近的选择是使用 Click Once list 进行签名;但“从文件中选择”选项正在寻找 .pfx 扩展名。所以我想也许这种方法只适用于支持 Click-Once 生成的证书?

根据 BOL,“如果您有其他格式的 key 文件或证书,请将其存储在 Windows 证书存储中并选择证书,如前一过程所述。”我在受信任的根证书颁发机构商店中安装了我的 X509Certificate。那不是 Windows 证书存储吗?因为证书存储窗口中没有显示任何内容。

除非我使用了错误的关键字组合,否则搜索在线资源也不会产生太多结果。现在我可以创建另一个 X509Certificate 和 key ,确保 key 的扩展名是 .pfx 但我想确定我在正确的解决方案上,然后再无所事事地旋转我的轮子,我不相信这会是答案.

那么,是否可以使用 X509Certificate 对 .NET 程序集进行签名?如果是这样,可以使用哪些文档来帮助执行此任务?

最佳答案

Publisher* 类与 Authenticode(tm) 关联。

寻找命令行工具:* 签名代码(或签名工具)* 检查信任

了解如何使用有效的代码签名证书对任何 .exe、.dll(和 .cab、.ocx)进行签名。在 Google 上搜索 Authenticode 或“代码签名证书”也会有帮助。

关于c# - 可以使用 X509Certificate 对 .NET 程序集进行签名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7190259/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com