2009-04-02 15 views
0

私たちは.NET 3.5でいくつかのコアサービスを構築し、WCF経由でサービスを公開しています。サービスは内部的に(すなわちイントラネット内で)アクセスされるだけである。サービスは、呼び出し元のユーザーのWindows資格情報を認証し、AD /機能グループを取得するだけです。WCF認証

NetTcpBindingとBasicHttpBindingを使用してセリブを公開する必要があります。

両方のバインディングタイプのセクションにどのような設定を追加する必要がありますか?それだけですか:

<system.serviceModel> 
    <services> 
     <service name="WCFTest.CalculatorService" behaviorConfiguration="WCFTest.CalculatorBehavior"> 
     <host> 
      <baseAddresses> 
      <add baseAddress = "http://localhost:8000/WCFTest/CalculatorService/" /> 
      <add baseAddress = "net.tcp://localhost:9000/WCFTest/CalculatorService/" /> 
      </baseAddresses> 
     </host> 

     <endpoint address ="basicHttpEP" binding="basicHttpBinding" contract="WCFTest.ICalculatorService"/> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 

     <endpoint address ="netTcpEP" binding="netTcpBinding" contract="WCFTest.ICalculatorService"/> 
     <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/> 

     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="WCFTest.CalculatorBehavior">   
      <serviceAuthorization impersonateCallerForAllOperations="false" principalPermissionMode="UseWindowsGroups" /> 
      <serviceCredentials > 
      <windowsAuthentication allowAnonymousLogons="false" includeWindowsGroups="true" /> 
      </serviceCredentials>  
      <serviceMetadata httpGetEnabled="True"/> 
      <serviceDebug includeExceptionDetailInFaults="False" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 

この場合ですか?これはNetTcpバインディングとBasicHttpバインディングの両方に適用されますか?

ありがとう

答えて

1

Visual Studio 2008では、[ツール] - > [WCFサービス構成エディタ]を選択します。設定ファイルを開き、そこで設定を編集してください。

0

いいえ、netTcpBindingには何も設定されていません。デフォルトでWindows認証が使用されます。 basicHttpBindingでは、バインディング設定で必要な認証メカニズムを指定する必要があります(basicHttpBindingはデフォルトで認証を使用しないため)。

<system.serviceModel> 
    <bindings> 
    <basicHttpBinding> 
     <binding name="DefaultBasicHttpBinding"> 
     <security mode="TransportCredentialsOnly"> 
      <transport clientCredentialType="Windows"/> 
     </security> 
     </binding> 
    </basicHttpBinding> 
    </bindings> 
    <services> 
    <service name="WCFTest.CalculatorService" behaviorConfiguration="WCFTest.CalculatorBehavior"> 
     <host> 
     <baseAddresses> 
      <add baseAddress="http://localhost:8000/WCFTest/CalculatorService/" /> 
      <add baseAddress="net.tcp://localhost:9000/WCFTest/CalculatorService/" /> 
     </baseAddresses> 
     </host> 
     <endpoint address="basicHttpEP" binding="basicHttpBinding" contract="WCFTest.ICalculatorService"/> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
     <endpoint address="netTcpEP" binding="netTcpBinding" contract="WCFTest.ICalculatorService"/> 
     <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/> 
    </service> 
    </services> 
    <behaviors> 
    <serviceBehaviors> 
     <behavior name="WCFTest.CalculatorBehavior">   
     <serviceMetadata httpGetEnabled="True"/> 
     <serviceDebug includeExceptionDetailInFaults="False"/> 
     </behavior> 
    </serviceBehaviors> 
    </behaviors> 
</system.serviceModel>