2014-06-20 4 views
0

Я пытаюсь использовать службу WCF в своем консольном приложении. Мой App.Config файл выглядит следующим образомОшибка аутентификации службы WCF

<configuration> 
<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
</startup> 
<system.serviceModel> 
    <bindings> 
     <wsHttpBinding> 
      <binding name="WSHttpBinding_InventItemGroupService" /> 
     </wsHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="http://mydomain.com/MicrosoftDynamicsAXAif50/inventitemgroupservice.svc" 
      binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_InventItemGroupService" 
      contract="ServiceReference1.InventItemGroupService" name="WSHttpBinding_InventItemGroupService"> 
      <identity> 
       <userPrincipalName value="[email protected]" /> 
      </identity> 
     </endpoint> 
    </client> 
</system.serviceModel> 

Console код приложения, чтобы сделать проверки подлинности часть.

protected ProgramClass(AifSos.InventItemGroupServiceClient inventItemGroupServiceClient) // Constructor 
    { 
     MInventItemGroupServiceClient = inventItemGroupServiceClient; 
     // ReSharper disable once PossibleNullReferenceException 
     MInventItemGroupServiceClient.ClientCredentials.Windows.ClientCredential.UserName = "un"; 
     MInventItemGroupServiceClient.ClientCredentials.Windows.ClientCredential.Password = "pw"; 
     MInventItemGroupServiceClient.ClientCredentials.Windows.ClientCredential.Domain = "domain"; 
    } 

Все кажется, хорошо для меня, но он всегда выдает ошибку

The caller was not authenticated by the service. 

Может ли один указать, что мне не хватает?

ответ

1

1 Перейдите в раздел «Свойства проекта клиента».

a. Перейдите на вкладку услуги

Включить эти настройки и использовать режим проверки подлинности Windows

2 Изменения app.config файл внутри проекта клиента с этим два образцом линией

 <security mode="None"> 
     <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" /> 
     <message clientCredentialType="Windows" negotiateServiceCredential="false" algorithmSuite="Default" establishSecurityContext="false" /> 
     </security> 

3 изменений app.config файла в проекте службы

<security mode="None"> 
      <message clientCredentialType="Windows" negotiateServiceCredential="false" algorithmSuite="Default" establishSecurityContext="false" /> 
      </security> 

4 в коде клиента при создании экземпляра службы и вызова для использования услуг этой линии для обеспечения входа данные в сер вице-пс.

  Service1Client client = new Service1Client(); 
      client.ClientCredentials.Windows.ClientCredential.UserName = "ETLIT-1"; 
      client.ClientCredentials.Windows.ClientCredential.Password = "etl"; 
      client.ClientCredentials.Windows.AllowNtlm = false; 
      client.ClientCredentials.Windows.ClientCredential.Domain = "ETLIT-1-PC"; 
      Console.WriteLine(client.addNumber(23, 2)); 
Смежные вопросы