Я хочу использовать.NET Api для получения списка сертификатов на смарт-карте. Я знал, что сертификаты на смарт-карте загружены в Личный магазин. Тем не менее, я хочу написать программу, которая запускается до входа в систему (я добавил кнопку на экране входа в Windows, чтобы открыть мою программу). Поскольку пользователь не зарегистрирован, сертификаты на смарт-карте не загружаются в Личный магазин. Вот почему я не могу использовать решение в этом вопросе. Как читать учетные данные с смарт-карты в С#. Мне нужно написать код, чтобы получить все сертификаты с SmartCard, не получая их из Personal store.
Может ли кто-нибудь помочь мне в этом?
Большое спасибо! Хай.
После многих исследований я нашел решение здесь.
Во-первых, вы можете запустить службу под учетными данными некоторого пользователя (обычно вы указываете учетные данные в параметрах обслуживания в MMC в каждой системе, где выполняется служба), а затем сопоставление сертификатов с смарт-карты в хранилище сертификатов Windows зависит от драйверов, Т.е. вам нужно проверить, работает ли этот сценарий с вашим считывателем смарт-карт.
Затем, если ваш считыватель смарт-карт поддерживает интерфейс PKCS # 11 (т.е. Поставщик предоставил DLL файлы PKCS # 11), вы можете получить доступ к содержимому смарт-карт через API PKCS # 11.
API PKCS11 представляет собой набор неуправляемых DLL-функций, которые могут использоваться с С# через P/Invoke или через некоторую стороннюю библиотеку.