0

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>

どうもありがとう、リカルド

4

1 に答える 1

0

同じサービス (別名 IIS アプリケーション) で 2 つの異なるエンドポイント (wsHttpBinding ssl X509 認証と匿名の basicHttpBinding) を公開することは可能ですか?

はい、同じサービスに対して複数のエンドポイントを持つことができます。

<service name="MyApp.MyService">
    <endpoint 
        address="/ws" 
        binding="wsHttpBinding" 
        contract="MyApp.IMyService" 
    />

    <endpoint 
        address="/basic" 
        binding="basicHttpBinding" 
        contract="MyApp.IMyService" 
    />
</service>

/basicこれで、Windows 2000 クライアントからエンドポイントに接続できるようになりました。

wsHttpBinding X509 認証を介して WCF サービスに接続する Windows 2000 用のクライアント アプリケーションを作成することは可能です (任意の言語が受け入れられます)。

はい、WSE 3.0 (Web Service Extensions) を使用できます。現在は完全に廃止されていますが、Windows 2000 について何が言えるでしょうか。次の記事をご覧ください。

于 2012-07-27T07:44:58.640 に答える