【发布时间】:2012-06-18 05:35:18
【问题描述】:
我正在使用此代码在本地机器上生成证书。
X509Certificate2 certificate = new X509Certificate2(cerFilePath,password);
X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
store.Add(certificate);
store.Close();
输出显示它已创建,但它不在 certmanager 的个人选项卡中,但如果我在同一程序中使用 My 以外的商店名称(例如:Trusted Publisher),则证书在该商店名称下的证书管理器中可用。
但我需要个人使用的证书。
出了什么问题?
【问题讨论】:
-
这是一个 Windows 应用程序,它与哪个用户一起运行?在当前用户下?所以在执行上下文中,谁是“我”,分别是。哪个商店是“StoreName.My”?
-
我在管理员模式下运行 Visual Studio,是的,它是 VC 中的 c# 项目,我需要通过将 .pfx 文件作为输入来创建证书。
-
这听起来像是当前提供的信息的假冒问题。您能否打印出有关当前用户(Thread.CurrentThread.CurrentPrincipal)的一些调试信息,以确保应用程序确实以您自己的用户身份执行,而不是模拟,或者打印出 Store.My 的当前内容代码,看看这是否真的是预期的存储证书。
标签: c# .net certificate