У меня есть сертификаты в моих пользовательских сертификатах Windows-> Личная папка и ее CA в папке Trusted Root.
У меня есть приложение-служба Windows, которое пытается получить сертификат с помощью API CertFindCertificateInStore ().
HCERTSTORE hMy = CertOpenSystemStore(0, _T("MY"));
CString cert = _T("1.2.3.4");
PCCERT_CONTEXT context = CertFindCertificateInStore( hMy, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, 0, CERT_FIND_SUBJECT_STR, cert , NULL );
Работает нормально, если я запускаю службу с текущим логином в учетных данных пользователя Windows.
Я создал локального пользователя (скажем, TEST) и добавил в группу администраторов.
Также добавлено в LocayPolicies-> Управление правами пользователей -> «Заменить токен уровня процесса» и «Логотип в качестве политик обслуживания».
Я запустил службу с учетными данными пользователя TEST. Служба запущена.
Но тот же код, CertFindCertificateInStore () API, не может найти сертификат, и API возвращает NULL.
Буду признателен за вашу помощь!