2012-05-14 5 views
1

У меня есть служба wcf с привязкой tcp к службе Windows. Он корректно работает на нашей локальной сети, однако, когда пользователи хотят подключиться к службе из Интернета, они получают следующее сообщение об ошибке:Сервер отклонил учетные данные клиента, duplex wcf service

The server has rejected the client credentials

это моя конфигурация службы:

service behaviorConfiguration="WcfServiceLibrary1.Service1Behavior" 
     name="LivePushServiceLib.SubscribeService"> 
     <endpoint address="" binding="netTcpBinding" bindingConfiguration="" 
      contract="WCF_Interface.ISubscribeService"> 

     </endpoint> 
     <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" 
      contract="IMetadataExchange" /> 
     <host> 
      <baseAddresses> 
      <add baseAddress="net.tcp://188.x.x.x:8524/SubscribeService.svc" /> 
      </baseAddresses> 
     </host> 
     </service> 
    </services> 

ответ

0

Вы используете безопасность по умолчанию с NetTcpBinding, который является Windows. В вашей локальной сети я предполагаю, что все используют учетные данные Windows довольно счастливо. Тем не менее, люди из Интернета вряд ли будут иметь учетные данные в вашем домене

Если вы хотите использовать это через Интернет, посмотрите на настройку безопасности на что-то вроде TransportWithMessageCredential, а затем используйте тип учетных данных для имени пользователя. Это позволяет интернет-клиентам проверять подлинность с именем пользователя, которое вы можете проверить в пользовательском UsernamePasswordValidator

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