2010-12-14 2 views
2

Я внедрил тестовый клиент/сервер, который реализует проверку подлинности UserName через WCF. Это почти все работает, однако я упал в последний барьер.Сервисный сертификат не указан для цели '###' Укажите сертификат службы в ClientCredentials

я получаю InvalidOperationException, который читает

The service certificate is not provided for target 'http://localhost:8732/Design_Time_Addresses/EvalServiceLibrary/Service1/'. Specify a service certificate in ClientCredentials.

Может кто-нибудь пролить свет?

Благодаря

ответ

1

звучит как требует сертификат безопасности и ваш код клиента не подает сертификат по запросу. WCF Security

0

Ваш клиент должен иметь возможность аутентифицировать сервис по ссылке на сертификат X509, открытый ключ которого он будет использовать для шифрования сообщений, отправленных службе.

Сервисный сертификат идентифицируется на стороне клиента с помощью свойства ServiceCertificate ClientCredentials. В сообщении об ошибке сообщается, что ваша конфигурация/код не настроили правильно. Если вы разместите свой код/​​конфиг, мы сможем рассказать вам, что не так.

2

Включите что-то подобное в вашем клиента файл конфигурации:

<client> 
<endpoint address="http://example.com/Myservice.svc" 
     binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IService" 
     contract="Core.IService" name="WSHttpBinding_IService" behaviorConfiguration="myServiceBehaviour" > 
    <identity> 
    <dns value="SampleServiceCertificate"/> 
    </identity> 
</endpoint> 
</client> 
    <behaviors> 
     <endpointBehaviors> 
     <behavior name="myServiceBehaviour"> 
      <clientCredentials> 
      <serviceCertificate> 
       <defaultCertificate storeLocation="LocalMachine" storeName="My" findValue="SampleServiceCertificate" x509FindType="FindBySubjectName" /> 
      </serviceCertificate> 
      </clientCredentials> 
     </behavior>    
     </endpointBehaviors>   
    </behaviors> 
+0

Ваш ответ не работал. Я получаю сообщение об ошибке: Не могу найти сертификат X.509, используя следующие критерии поиска: StoreName 'My', StoreLocation 'LocalMachine', FindType 'FindBySubjectName', FindValue 'SampleServiceCertificate'. –

+0

@ MichaelS.Miller - StoreName 'My' и FindValue 'SampleServiceCertificate' - это просто примеры, которые я дал, вы должны изменить эти значения в соответствии с вашим установленным сертификатом. – BornToCode

+0

Я использовал свой сертификат. Однако выясняется, что кто-то ошибся с именем сертификата в письме, когда я спросил у них имя сертификата, и я просто скопировал его в код, не глядя на него. Как только я понял, что «Сервис» не был записан «Servcie», он работал нормально. –

Смежные вопросы