WCF serviceCertificate-允许为单个服务提供备用证书

WCF serviceCertificate-允许为单个服务提供备用证书,wcf,configuration,Wcf,Configuration,我有一个WCF服务(使用VS2008、.Net 3.5构建),服务器和客户端都使用X509证书。它似乎工作得很好。但是,需要允许不同的客户端使用不同的服务器证书。这就是我的问题所在 回到旧的WSE 2.0单独策略文件时代,我可以在请求策略中以这种方式指定服务器证书: ... <wsp:Policy wsu:Id="RequestPolicy"> <wsp:MessagePredicate wsp:Usage="wsp:Required" ...> ... &l

我有一个WCF服务(使用VS2008、.Net 3.5构建),服务器和客户端都使用X509证书。它似乎工作得很好。但是,需要允许不同的客户端使用不同的服务器证书。这就是我的问题所在

回到旧的WSE 2.0单独策略文件时代,我可以在请求策略中以这种方式指定服务器证书:

...
<wsp:Policy wsu:Id="RequestPolicy">
  <wsp:MessagePredicate wsp:Usage="wsp:Required" ...>
  ...
  <wssp:Confidentiality wsp:Usage="wsp:Required">
    <wssp:KeyInfo>
      <wssp:SecurityToken>
        <wssp:TokenType>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3</wssp:TokenType>
      </wssp:SecurityToken>
    </wssp:KeyInfo>
    ...
  </wssp:Confidentiality>
</wsp:Policy>
...
。。。
...
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3
...
...
这允许在调用中使用服务器已知的任何X509证书;因为提供了令牌类型,但没有特定的证书详细信息

我想在WCF服务中做一些类似的事情,但找不到将其配置为使用“any”证书的方法;配置似乎必须归结为一个特定的证书:

...
<behavior name="NameOfServiceBehavior">
  ...
  <serviceCredentials>
    <clientCertificate>
      <authentication certificateValidationMode="PeerTrust" revocationMode="NoCheck" />
    </clientCertificate>
    <serviceCertificate storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" findValue="SubjectNameOfCertificate" />
    <issuedTokenAuthentication allowUntrustedRsaIssuers="true" />
  </serviceCredentials>
</behavior>
...
。。。
...
...
我找不到一种方法可以为一个服务提供多个行为,或者为一个行为提供多个证书

客户端证书不必指定,因此我希望有一种方法可以与服务器证书类似地“通用”。我更愿意在配置中保留所有WCF“东西”,并避免为安全性编写自定义处理程序

谢谢