Использование клиентских сертификатов с WCF в Xamarin Android - PullRequest
0 голосов
/ 28 апреля 2020

У нас есть приложение Xamarin Android, которое общается с сервером, используя WCF . («Просто используйте REST.» Я согласен. Для целей этого вопроса предположим, что мы должны использовать WCF для того, что я назову «устаревшими причинами».)

Это все работает.

* 1006 Однако теперь у нас есть клиент, который хочет, чтобы устройства Android использовали клиентские сертификаты при обращении к серверу. Я нашел пример кода , который мне нужно построить в Xamarin:
        BasicHttpBinding binding = new BasicHttpBinding();
        binding.Security.Mode = BasicHttpSecurityMode.Transport;
        binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;

        var endpoint = new EndpointAddress(serviceURL);
        var client = new MyAppCommServiceClient(binding, endpoint);

        // Specify a certificate to use for authenticating the client.
        client.ClientCredentials.ClientCertificate.SetCertificate(
            StoreLocation.CurrentUser,
            StoreName.My,
            X509FindType.FindBySubjectName,
            certSubjectName);

Проблема в том, что при выполнении этого вызова SetCertificate() выдает System.NotImplementedException.

Мой вопрос таков: есть ли в Xamarin Android альтернативный способ сообщить клиенту WCF (производному от System.ServiceModel.ClientBase) использовать указанный c клиентский сертификат?

Мы установите сертификат клиента на устройстве Android. Он также доступен в виде отдельного файла .pfx (и наше приложение может читать файловую систему), если это поможет. Также обратите внимание, что я открыт для решений, которые не будут работать в PCL.

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