2009-04-02 3 views
0

Мы создаем некоторые основные сервисы в .NET 3.5 и предоставляем услуги через WCF. Доступ к службам будет осуществляться только внутри страны (т. Е. Внутри интрасети). Сервисы просто должны аутентифицировать учетные данные Windows вызывающего пользователя и получить их AD/функциональные группы.WCF Authentication

Серийные номера должны быть открыты с использованием 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> 

 Смежные вопросы

  • Нет связанных вопросов^_^