Как получить доступ к хранилищу пользовательских сертификатов в формах Android Xamarin - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть устройство Android с установленным клиентским сертификатом X.509.Когда я использую браузер для доступа к нашему серверу, появляется всплывающее окно «Использовать сертификат», а сертификат используется для аутентификации для доступа к сайту.Итак, я знаю, что сертификат установлен и работает.

Часть кода, которая работает в формах XAMARIN UWP, не работает под Android.
Я выбрал USE_CREDENTIALS в манифесте Android.
Требуется ли другое разрешение?
Что еще нужно сделать, чтобы получить доступ к сертификатам пользователя на Android?

private X509Certificate2 GetClientCertificate()
        {
            using (X509Store userCaStore = new X509Store(StoreLocation.CurrentUser))
            {
                try
                {
                    userCaStore.Open(OpenFlags.ReadOnly);
                    X509Certificate2Collection certificatesInStore = userCaStore.Certificates;
                    // All personal certificates are available on UWP.
                    // The collection is empty on Android although a cert is installed and works in other apps.
                    foreach (var cert in certificatesInStore)
                    {
                        if (cert.FriendlyName == "MY_CERTNAME")   
                        {
                            return cert;
                        }
                    }

                    return null;
                }
                catch
                {
                    throw;
                }
                finally
                {
                    userCaStore.Close();
                }
            }
        }
...