Достаточно ли перечислений X509Certificates, таких как StoreName и StoreLocation, для платформ Windows и Macos? - PullRequest
0 голосов
/ 11 февраля 2019

Я новичок в .Net и X509 Сертификаты.Я должен написать приложение, используя ядро ​​.net, чтобы найти все установленные сертификаты для Windows и Mac.Я прошел этот пример здесь .Мне было интересно, если

  1. Эти перечисления работают как для Windows, так и для Macos?
  2. Должно ли этого быть достаточно на обеих платформах, чтобы найти все установленные сертификаты?

Спасибо.

1 Ответ

0 голосов
/ 11 февраля 2019

Перечисления «работают» в том смысле, что вы можете передать их. Но в macOS только следующие значения StoreName будут успешными:

  • My (чтение-запись, удаление не удастся, если какие-либо пользовательские правила довериябыли применены)
  • Root (только для чтения)
  • Disallowed (только для чтения)

My соответствует System.keychain (LocalMachine)или login.keychain (CurrentUser).

Разве этого достаточно на обеих платформах, чтобы найти все установленные сертификаты?

Нет, на любой платформе их недостаточно, чтобы найти все установленныхсертификаты.

  • В macOS можно создать любое количество цепочек для ключей, и .NET не может их перечислить.
  • В Windows можно создать любое количество хранилищ с произвольным именем,и .NET не может перечислить их.
  • В обеих системах вещи могут быть установлены под разными пользователями.

Но перечисление хранилища My для "пригодных для использования сертификатов" илиRoot хранилище для «доверенных сертификатов» является достаточным решением на 99% на обеих платформах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...