Изменение службы WCF с поддержкой Silverlight для взаимодействия с использованием проверки подлинности Windows - PullRequest
1 голос
/ 28 октября 2009

У меня есть приложение Silverlight, и я добавил службу WCF с поддержкой Silverlight. Я хотел бы развернуть это как решение для внутренней сети с использованием аутентификации Windows без анонимного доступа.

Из коробки служба WCF добавляет следующие параметры в файл web.config:

<system.serviceModel>
  <behaviors>
   <serviceBehaviors>
    <behavior name="WindowsAuthTest.Web.Service1Behavior">
     <serviceMetadata httpGetEnabled="true" />
     <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
   </serviceBehaviors>
  </behaviors>
  <bindings>
   <customBinding>
    <binding name="customBinding0">
     <binaryMessageEncoding />
     <httpTransport />
    </binding>
   </customBinding>
  </bindings>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
  <services>
   <service behaviorConfiguration="WindowsAuthTest.Web.Service1Behavior"
    name="WindowsAuthTest.Web.Service1">
    <endpoint address="" binding="customBinding" bindingConfiguration="customBinding0"
     contract="WindowsAuthTest.Web.Service1" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
   </service>
  </services>
 </system.serviceModel>

При добавлении этой ссылки на сервис в проект silverlight эти настройки добавляются в ServiceReferences.ClientConfig:

<system.serviceModel>
        <bindings>
            <customBinding>
                <binding name="CustomBinding_Service1">
                    <binaryMessageEncoding />
                    <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
                </binding>
            </customBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:3568/Service1.svc" binding="customBinding"
                bindingConfiguration="CustomBinding_Service1" contract="ServiceReference1.Service1"
                name="CustomBinding_Service1" />
        </client>
    </system.serviceModel>

Как мне изменить эти настройки, чтобы он работал с аутентификацией Windows и возможно ли это?

1 Ответ

0 голосов
/ 09 февраля 2011

Попробуйте добавить:

режим безопасности = "TransportCredentialOnly

, например

<binding name="BasicHttpBinding_IUserWebService" maxBufferSize="2147483647"
           maxReceivedMessageSize="2147483647">
       <security mode="TransportCredentialOnly" />
</binding>

А в web.config мы используем basicHttpBinding, например,

 <bindings>
      <basicHttpBinding>
        <binding name="customBasicHttpBinding" maxBufferSize="2147483647"
          maxReceivedMessageSize="2147483647">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Windows" proxyCredentialType="None" />
          </security>
        </binding>
      </basicHttpBinding>      
 </bindings>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...