在Xamarin Android中将客户端证书与WCF一起使用

时间:2020-04-28 14:49:52

标签: c# android wcf xamarin client-certificates

我们有一个Xamarin Android应用程序,它使用WCF与服务器对话。 (“仅使用REST。我同意。出于这个问题的目的,假设我们必须将WCF用于所谓的“传统原因”。)

一切正常。

但是,现在我们有一个客户,他希望Android设备在与服务器对话时使用客户端证书。我发现我必须在Xamarin中构建一些example code

        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)使用特定的客户端证书?

我们在Android设备上安装了客户端证书。如果有帮助,它也可以作为单独的.pfx文件(我们的应用程序可以读取文件系统)提供。另外请注意,我对在PCL中不起作用的解决方案持开放态度。

0 个答案:

没有答案