C++ 如果应用程序使用不同的用户凭据启动,CertFindCertificateInstance无法找到证书
我的windows用户证书->个人文件夹中有证书,其CA位于受信任的根文件夹中 我有一个windows服务应用程序,它尝试使用CertFindCertificateInstance()API获取证书 如果我使用当前登录windows用户凭据运行该服务,则工作正常 我创建了一个本地用户(比如TEST)并将其添加到管理员组。 还添加到LocayPolicys->User Rights Management->“替换流程级别tocken”和“作为服务策略上的徽标” 我使用测试用户凭据启动了服务。服务已启动。 但是相同的代码CertFindCertificateInStore()API找不到证书,API返回NULLC++ 如果应用程序使用不同的用户凭据启动,CertFindCertificateInstance无法找到证书,c++,security,certificate,C++,Security,Certificate,我的windows用户证书->个人文件夹中有证书,其CA位于受信任的根文件夹中 我有一个windows服务应用程序,它尝试使用CertFindCertificateInstance()API获取证书 如果我使用当前登录windows用户凭据运行该服务,则工作正常 我创建了一个本地用户(比如TEST)并将其添加到管理员组。 还添加到LocayPolicys->User Rights Management->“替换流程级别tocken”和“作为服务策略上的徽标” 我使用测试用户凭据启动了服务。服务已
我将感谢你的帮助 我找到了根本原因。当前用户的人员证书对其他用户不可用。我将证书导入本地计算机,并使用下面更新的代码来解决问题
HCERTSTORE hMy = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, NULL, CERT_SYSTEM_STORE_LOCAL_MACHINE, L"MY");
HCERTSTORE hMy = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, NULL, CERT_SYSTEM_STORE_LOCAL_MACHINE, L"MY");