2015-02-10 2 views
0

Я написал службы WCF и его файл конфигурацииФОС BasicHttpBinding не работает в ОС Windows 8.1 магазине приложений

<system.serviceModel>  
     <behaviors> 
     <serviceBehaviors> 
      <behavior name="MyServiceTypeBehaviors" > 
      <serviceMetadata httpGetEnabled="true"/> 
      </behavior> 
     </serviceBehaviors> 
     </behaviors> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="securityDemo"> 
      <security mode="TransportCredentialOnly"> 
      <transport clientCredentialType="Windows" /> 
      </security> 
     </binding> 
     </basicHttpBinding> 
    </bindings> 
    <services> 
     <service name="WcfDemo.EmpService" behaviorConfiguration="MyServiceTypeBehaviors"> 
     <host> 
      <baseAddresses> 
      <add baseAddress="http://localhost:3003/"/> 
      </baseAddresses> 
     </host> 
     <endpoint address="" binding="basicHttpBinding" contract="WcfDemo.IEmpService" bindingConfiguration="securityDemo"/> 
     </service> 
    </services> 
    </system.serviceModel> 

Это работает отлично для консольного приложения или WPF приложения. Но когда я использую тот же сервис для окон 8.1 приложения я получаю это исключение

запрос HTTP является несанкционированным со схемой проверки подлинности клиента «Согласование». Заголовок аутентификации, полученный с сервера, был «Переговоры, NTLM».

ответ

1
  • Развертывание службы WCF на IIS Local (потому что IIS Express не является настолько гибким), отправляется анонимная проверка подлинности и установить на встроенной проверке подлинности Windows.
  • Сделать ссылку обслуживания в целевом Win 8 app.
  • перед использованием прокси-сервер, добавьте линии с идентификацией:

    вар клиента = новый ServiceReference1.Service1Client(); client.ClientCredentials.Windows.ClientCredential.UserName = "имя пользователя Windows";
    client.ClientCredentials.Windows.ClientCredential.Password = "user passw";

  • вызов метода обслуживания

  • прибыль
+0

Я генерации ServiceReference путем визуального Studio.I пытался как с себя хозяином и IIS. – user2412130

+0

У меня есть ошибка с первым ответом. Я забыл выбрать привязку в WCF и использовал значение по умолчанию. С вашей привязкой у меня такая же ошибка, но я нашел решение и переписал ответ выше. –

+0

Ваш ответ работает, но я хочу аутентифицировать пользователя, используя System.Net.CredentialCache.DefaultNetworkCredentials. – user2412130

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