<clientCertificate> 的 <certificate>

指定用于对消息进行签名和加密的 X.509 证书。

configuration
  system.serviceModel
    behaviors
      <serviceBehaviors>
        behavior
          <serviceCredentials>
            <clientCertificate>
              <certificate>

语法

<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 指定客户端可用于验证服务器证书的 X.509 证书存储的位置。 有效值包括以下值:

- LocalMachine:分配给本地计算机的证书存储区。
- CurrentUser:分配给当前用户的证书存储区。

默认值为 LocalMachine。
storeName 指定要打开的 X.509 证书存储区的名称。 有效值包括以下值:

- AddressBook:其他用户的证书存储。
- AuthRoot:第三方证书颁发机构 (CA) 的证书存储区。
- CertificationAuthority:中间证书颁发机构 (CA) 的证书存储区。
- Disallowed:已吊销证书的证书存储区。
- My:个人证书的证书存储区。
- Root:受信任根证书颁发机构 (CA) 的证书存储区。
- TrustedPeople:直接受信任的人员和资源的证书存储区。
- TrustedPublisher:直接受信任的发行者的证书存储区。

默认值为 My。
X509FindType 定义要执行的 X.509 搜索的类型。 有效值包括以下值:

- FindByThumbPrint
- FindBySubjectName
- FindBySubjectDistinguishedName
- FindByIssuerName
- FindByIssuerDistinguishedName
- FindBySerialNumber
- FindByTimeValid
- FindByTimeNotYetValid
- FindByTemplateName
- FindByApplicationPolicy
- FindByCertificatePolicy
- FindByExtension
- FindByKeyUsage
- FindBySubjectKeyIdentifier

findValue 属性中包含的类型必须满足指定 X509FindType 的要求。

默认值为 FindBySubjectDistinguishedName。

子元素

无。

父元素

元素 说明
<clientCertificate>

备注

当服务必须事先拥有客户端的证书才能与该客户端进行安全通信时,可使用 <certificate> 元素。 使用双工通信模式时,会出现这种情况。 在更为典型的请求/响应模式中,客户端会将其证书包含在请求中,服务将使用该证书对发送回客户端的响应进行加密和签名。 但是,在双工通信模式中,服务没有来自客户端的请求,因此服务需要事先具有客户端的证书以确保发送到客户端的消息的安全。 因此,您必须通过带外协商来获取客户端的证书,并使用此元素指定该证书。 有关双工服务的详细信息,请参阅如何:创建双工协定

示例

下面的代码指定如何在 <authentication> 元素中查找适当的 X.509 证书和自定义验证类型。

<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>

请参阅