IISでホストされているWCFサービスがあります。このサービスはwsHttpBindingX509認定認証を使用し、すべて正常に機能します。ここで、Windows 2000マシンからこのサービスにアクセスする必要があります。問題は、Framework 2.0がwsHttpBinding認証をサポートせず、basicHttpBindingのみをサポートしていることです。
私の質問:
同じサービス(別名IISアプリケーション)で2つの異なるエンドポイント(wsHttpBinding ssl X509認証と匿名のbasicHttpBinding)を公開することは可能ですか?
wsHttpBinding X509認証を介してWCFサービスに接続するためのWindows2000用のクライアントアプリケーションを作成することは可能です(任意の言語が受け入れられます)
<behaviors> <serviceBehaviors> <behavior name="CertBehavior"> <serviceMetadata httpsGetEnabled="False"/> <serviceCredentials> <serviceCertificate findValue="CertServices" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName"/> <clientCertificate> <authentication certificateValidationMode="PeerTrust"/> </clientCertificate> </serviceCredentials> </behavior> <behavior name="AnonBehavior"> <serviceMetadata httpGetEnabled="True"/> <serviceDebug includeExceptionDetailInFaults="true"/> </behavior> </serviceBehaviors> </behaviors> <services> <service name="Server.Service1" behaviorConfiguration="CertBehavior"> <host> <baseAddresses> <add baseAddress="http://192.168.1.112:8732/Service"/> <add baseAddress="https://192.168.1.112/Service"/> </baseAddresses> </host> <endpoint address="" binding="wsHttpBinding" bindingConfiguration="CertBinding" contract="Server.IService1"/> </service> </services>
////////////////////////////////////////////////// /////////////////////////////////////////
私はすでにこの構成を試しています:
<behaviors>
<endpointBehaviors>
<behavior name="basicHttpBehavior"/>
<behavior name="certWsBehavior">
<clientCredentials>
<clientCertificate findValue="Services" storeLocation="LocalMachine" x509FindType="FindBySubjectName" />
<serviceCertificate>
<defaultCertificate findValue="Services" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" />
<authentication certificateValidationMode="PeerTrust" />
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="Server.Service1">
<clear />
<endpoint address="" behaviorConfiguration="certWsBehavior" binding="wsHttpBinding" contract="Server.IService1">
</endpoint>
<!--endpoint address="/basic" binding="basicHttpBinding" bindingConfiguration="BasicAnonBinding" contract="Server.IService1" /-->
<host>
<baseAddresses>
<add baseAddress="http://192.168.1.112:8732/PcrService" />
<add baseAddress="https://192.168.1.112/PcrService" />
</baseAddresses>
</host>
</service>
</services>
どうもありがとう、リカルド