Я подключение к службе дуплекса WCF с x509 CERT, с указанием сведений о сертификате в файле конфигурации клиента, как это:Динамически x509 использовать для WCF дуплексного порта связи
<behaviors>
<endpointBehaviors>
<behavior name="ScannerManagerBehavior">
<clientCredentials>
<clientCertificate findValue="ClientName" x509FindType="FindBySubjectName" storeLocation="CurrentUser" storeName="My" />
<serviceCertificate>
<authentication certificateValidationMode="PeerTrust" />
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
код, который затем подключается к служба WCF:
DuplexChannelFactory<IScannerManager> _smFactory
= new DuplexChannelFactory<IScannerManager>(instanceContext, nameOfEndPoint);
var _commsChannel = _smFactory.CreateChannel();
Теперь мне нужно указать имя сертификата клиента, которое будет использоваться программно, в коде. Возможно ли это сделать? Я могу видеть, что я могу создать свой собственный класс X509Certificate2, но я не уверен, как изменить/установить findValue="clientName"
бит ...
Благодаря
Как насчет использования свойства ClientCertificate, см. Http://msdn.microsoft.com/en-us/library/system.servicemodel.description.clientcredentials.clientcertificate.aspx. см. Также эту ссылку http://stackoverflow.com/questions/2406136/wcf-certificates-without-certificate-store, в которой есть фрагмент, показывающий, как получить доступ к этому свойству в поведении канала в конечной точке. – wal