再会
由于出现此错误,我在尝试分配私钥时遇到严重问题。System.Security.Cryptography.CryptographicException: Keyset does not exist
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
var col = store.Certificates.Find(X509FindType.FindBySerialNumber, "00873476DC47C5BB614EA96F2A9CE744A6", false);
var cert = col[0];
var xmlUnSignedSaml = new XmlDocument();
xmlUnSignedSaml.LoadXml(assertion);
xmlUnSignedSaml.PreserveWhitespace = true;
SignedXml signedXml = new SignedXml(xmlUnSignedSaml);
signedXml.SigningKey = cert.PrivateKey; //<<<--- Exception thrown.
我已验证以下内容:
我已经检查了以下页面的答案,但绝对没有一个对我有用:
我正在Visual Studio中运行应用程序,并且在上面的代码段中,它尝试设置
SignedXml's SigningKey
时引发异常我还可以做些什么来使其启动并运行?
(事后,我还尝试了对证书和文件夹的“所有人”权限-即使抛出了相同的异常)
最佳答案
我已通过以下步骤解决了我的问题:
FindPrivateKey - 15.5mb in size解决方案。
ctrl+shift+B
。 Main(string args[])
方法中添加了以下代码行,因为我很懒,并且不想通过控制台进行操作:args = new string[] { "My", "LocalMachine", "-t", THUMBPRINT_OBTAINED_IN_MMC, "-a" };
我更改了 key 本身的权限,然后我的应用程序开始工作。