SignerSignEx作为Azure WebJob

时间:2015-11-13 10:26:31

标签: c# azure sign cryptoapi webjob

我在C#上发现了SignerSignEx的精彩使用:https://stackoverflow.com/a/26372061

它在dev上工作正常。机器,但在Azure WebJob上你必须使用这样的东西:

X509Certificate2 cert = new X509Certificate2(certPath, 
                        certPassword, 
                        X509KeyStorageFlags.MachineKeySet |
                        X509KeyStorageFlags.PersistKeySet |
                        X509KeyStorageFlags.Exportable);

但是X509KeyStorageFlags.MachineKeySet标志SignerSignEx返回hResult = -2146885626(错误代码0x80092006 - 没有为商店或对象指定提供者。)

我如何解决它以及为什么MachineKeySet会对提供商产生影响? 谢谢!

1 个答案:

答案 0 :(得分:0)

经过一些研究后,我几乎肯定(99%:))SignerSignEx在没有用户个人资料的情况下无效。 所以我使用了mono + openssl。

看起来像是一个解决方案。

您可以在以下位置查看使用Mono的authenticode示例: https://github.com/mono/mono/blob/master/mcs/tools/security/signcode.cs

再见 祝你有美好的时光!