Xamarin формы android с использованием пользовательских сертификатов - PullRequest
2 голосов
/ 04 марта 2020

Если пользователь установил сертификат пользователя pfx на устройстве Android, браузер chrome видит и запрашивает разрешение на использование клиентского сертификата пользователя для доступа к серверу, который принимает такие сертификаты. Что такое эквивалент форм Xamarin?

certificate access / selection

Как мы можем получить доступ к этим сертификатам в приложениях форм Xamarin для Android.

Под windows (UWP) Доступ к пользовательским сертификатам просто

              httpClientHandler.ClientCertificateOptions = ClientCertificateOption.Automatic;
              httpClientHandler.UseDefaultCredentials = true;

Под Android мы пытаемся использовать пользовательскую версию AndroidClienthandler

 MyAndroidClientHandler clientHandler = new MyAndroidClientHandler();

В пользовательском AndroidClientHandler есть 2 проблемы, которые нужно решить
1) как получить сертификат от пользовательских сертификатов из цепочки для ключей?
Что-то похожее на этот пост? Сертификаты клиента на Android

2) Как добавить этот сертификат в ClientHandler? Могу ли я просто сделать это
clientHandler.TrustedCerts.Add (cert);
или более вероятно
Добавить сертификат в контекст SSL

Кому-нибудь когда-нибудь удавалось сделать Вызов HTTPS с использованием уже установленного сертификата клиента из форм Xamarin?

1 Ответ

2 голосов
/ 05 марта 2020

Похоже, Android не предоставил прямой способ использования учетных данных по умолчанию, но Android предоставляет разработчикам возможность выбора использования общесистемных учетных данных или личных учетных данных приложения .

KeyChain может помочь запустить системное диалоговое окно для пользователя, чтобы выбрать сертификат / ввести пароль. Обращаясь к более раннему сообщению .

И расширите AndroidClientHandler как отправлено здесь - это то, что я нашел, чтобы использовать сертификат клиента.

Надеюсь, это поможет.

...