Xamarin/Visual Studio на Mac — iPhone — невозможно вывести список сертификатов X509Store

Устройство среды: . iPhone6s

Среда разработки: .net Standard 1.5, Visual Studio для Mac Community версии 7.2.2 (сборка 7), Xamarin

У меня есть следующий код для получения/списка сертификатов, установленных на моем iPhone. До сих пор мне это не удалось — я получаю пустую коллекцию, когда использую код ниже.

Я запускаю код на iPhone, используя профиль обеспечения разработки.

У меня есть 2 проекта: портативный проект и проект iOS. Перечисленный ниже код находится в библиотеке Portable Class.

using System;
using System.Collections.Generic;
using Xamarin.Forms;

using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

    X509Store paramStore 

    paramStore  = new X509Store(StoreName.My, StoreLocation.CurrentUser) 

    paramStore.Open(OpenFlags.ReadOnly); 
    foreach (X509Certificate2 mCert in paramStore.Certificates)
    {
     numberOfCertificates = numberOfCertificates + 1;

    }

Я также пытался получить доступ к StoreName.Root, StoreName.CertificateAuthority вместе с вариантами OpenFlags, например. .ReadWrite - тот же результат без данных.

Ищу вход/мысли.


person user1811107    schedule 14.11.2017    source источник
comment
Скорее всего, вам нужны определенные разрешения в файле манифеста, чтобы получить к нему доступ. Дополнительные сведения см. в документации Xamarin или Apple.   -  person Lex Li    schedule 14.11.2017


Ответы (1)


К сожалению, это не поддерживается на iOS, вот объяснение со стороны Apple:

Сначала несколько уточнений:

  • Учитывая, что ранее вы говорили об «аутентификации клиента», я предполагаю, что вы говорите о цифровых идентификаторах, а не о сертификатах. Примечание. Цифровое удостоверение — это комбинация закрытого ключа и сертификата, содержащего открытый ключ, соответствующий этому закрытому ключу, и это то, что необходимо предоставить на стороне клиента, если вы хотите, чтобы сервер аутентифицировал клиента.

  • Похоже, вас волнуют цифровые удостоверения, установленные через MDM. Учетные данные, установленные таким образом, помещаются в группу доступа Apple Keychain и поэтому доступны только для приложений Apple. QA1745 Предоставление сертификатов и ключей, доступных для вашего приложения, обсуждает это в Подробнее.

Есть ли способ проверить [установлено ли цифровое удостоверение] на [устройстве]?

Не в целом.

Дополнительные сведения см. в соответствующем случае на форуме разработчиков Apple: Как получить список сертификатов с устройства iOS. ?

person Kevin Li    schedule 15.11.2017
comment
@ user1811107, если мой ответ полезен, вы можете его принять? Это важно для меня! Спасибо! - person Kevin Li; 22.11.2017