2009-04-02 13 views
0

Nous construisons des services de base dans .Net 3.5 et exposons les services via WCF. Les services ne seront accessibles qu'en interne (c'est-à-dire sur l'intranet). Les services ont juste besoin d'authentifier les informations d'identification Windows de l'utilisateur appelant et d'obtenir leurs groupes AD/fonctionnels.Authentification WCF

Les serives doivent être exposées en utilisant NetTcpBinding et BasicHttpBinding.

Quelle configuration dois-je ajouter à la section pour les deux types de liaison? Est-ce juste cela:

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

Est-ce le cas? Cela s'appliquera-t-il à la fois à mes liaisons NetTcp et BasicHttp?

Merci

Répondre

1

Dans Visual Studio 2008 Allez dans Outils -> WCF Service Editor configuration. Ouvrez votre fichier de configuration et modifiez les paramètres ici.

0

Non. Il n'y a rien à configurer pour netTcpBinding: il utilise l'authentification Windows par défaut. Pour basicHttpBinding, vous devez spécifier le mécanisme d'authentification que vous souhaitez utiliser dans la configuration de liaison (car basicHttpBinding n'utilise pas l'authentification par défaut):

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