<certificate> элемента <clientCertificate>
Указывает сертификат X.509, используемый для подписания и шифрования сообщений.
Иерархия схемы
<system.serviceModel>
<варианты поведения>
<serviceBehaviors>
<behavior> для <serviceBehaviors>
<serviceCredentials>
<clientCertificate> для <serviceCredentials>
<certificate> элемента <clientCertificate>
Синтаксис
<certificate findValue = "String"
storeLocation = "CurrentUser/LocalMachine"
storeName="AddressBook/AuthRoot/CertificateAuthority/Disallowed/My/Root/TrustedPeople/TrustedPublisher"
X509FindType="FindByThumbPrint/FindBySubjectName/FindBySubjectDistinguishedName/FindByIssuerName/FindByIssuerDistinguishedName/FindBySerialNumber/FindByTimeValid/FindByTimeNotYetValid/FindByTemplateName/FindByApplicationPolicy/FindByCertificatePolicy/FindByExtension/FindByKeyUsage/FindBySubjectKeyIdentifier"
/>
Атрибуты и элементы
В следующих разделах описываются атрибуты, дочерние и родительские элементы.
Атрибуты
Атрибут | Описание |
---|---|
findValue |
Строка, содержащая значение для поиска в хранилище сертификатов X.509. Тип, указанный в атрибуте, должен отвечать требованиям заданного значения X509FindType. Значение по умолчанию — пустая строка. |
storeLocation |
Задает расположение хранилища сертификатов Х.509, которое клиент использует для проверки сертификата сервера. Допустимы следующие значения:
Значение по умолчанию — LocalMachine. |
storeName |
Задает имя открываемого хранилища сертификатов X.509. Допустимы следующие значения:
Значение по умолчанию — My. |
X509FindType |
Определяет тип поиска сертификата X.509. Допустимы следующие значения:
Тип, указанный в атрибуте findValue, должен отвечать требованиям заданного значения X509FindType. Значение по умолчанию — FindBySubjectDistinguishedName. |
Дочерние элементы
Нет.
Родительские элементы
Элемент | Описание |
---|---|
Замечания
Элемент <certificate> используется в случаях, когда служба должна заранее получить клиентский сертификат для безопасного обмена данными с клиентом. Это характерно для дуплексного обмена данными. В более распространенном варианте «запрос/отклик» клиент включает сертификат в запрос, который используется службой для шифрования и подписания отклика. Тем не менее при дуплексном обмене данными служба не получает запроса от клиента, и ей, таким образом, необходим сертификат клиента заранее, чтобы обеспечить защиту сообщения, отправляемого клиенту. Следовательно, необходимо получить сертификат клиента при согласовании вне диапазона и указать сертификат с помощью этого элемента. Дополнительные сведения о дуплексных службах см. в разделе How to: Create a Duplex Contract.
Пример
В следующем примере кода демонстрируется поиск соответствующего сертификата X.509 и пользовательского типа проверки в элементе <authentication>.
<serviceBehaviors>
<behavior name="myServiceBehavior">
<clientCertificate>
<certificate
findValue="www.cohowinery.com"
storeLocation="CurrentUser"
storeName="TrustedPeople"
x509FindType="FindByIssuerName" />
<authentication customCertificateValidatorType="MyTypes.Coho"
certificateValidationMode="Custom"
revocationMode="Offline"
includeWindowsGroups="false"
mapClientCertificateToWindowsAccount="true" />
</clientCertificate>
</behavior>
</serviceBehaviors>
См. также
Справочник
Certificate
Certificate
X509ClientCertificateCredentialsElement
Другие ресурсы
Security Behaviors in WCF
How To: Create a Service Employing a Custom Certificate Validator
Working with Certificates