Не удалось подключить службу SharePoint WCF к SSL-сертификату с клиентского ноутбука - PullRequest
0 голосов
/ 10 ноября 2019

Моя среда тестирования:

  • 1 * Сервер :: Сайт SharePoint со службой WCF (в папке ISAPI), и мы настроили SSL и Cert на нем.
  • 1* Клиент :: Windows 10 с одним консольным приложением для использования службы WCF

Тестирование (1): все программы (служба WCF и консольное приложение) на сервере SharePoint

, которые я создалконсольное приложение для вызова службы WCF в SharePoint. Между тем консольное приложение и WCF находятся на одном сервере. В результате все работает правильно. Файл успешно загружен в библиотеку документов.

Тестирование (2): для имитации моей клиентской среды:

  • 1 * SharePoint: служба WCF
  • 1* Windows 10: Консольное приложение

результат не удался, и я получил сообщение об ошибке:

HTTP-запрос не авторизован с помощью схемы аутентификации клиента «Anonymous». Заголовок аутентификации, полученный от сервера, был 'NTLM'

Если честно, я застрял здесь на некоторое время. Я также перечисляю часть моего исходного кода для кого-то опытного, чтобы смотреть. Я также разместил пример кода и web.config в здесь .

1 Ответ

0 голосов
/ 11 ноября 2019

Обновлено.
Если мы включаем аутентификацию NTLM, мы должны включить аутентификацию Windows.
enter image description here
Затем при вызове сервиса мынеобходимо предоставить учетные данные Windows.

//it will use the binding and service endpoint address in the system.servicemode section.
        ServiceReference1.ServiceClient client = new ServiceReference1.ServiceClient();
                //windows account on the server.
                client.ClientCredentials.Windows.ClientCredential.UserName = "administrator";
                client.ClientCredentials.Windows.ClientCredential.Password = "abcd1234!";
                try
                {
                    Console.WriteLine(client.SayHello());
                }
                catch (Exception)
                {
                    throw;
                }

Автоматически сгенерированная конфигурация.

   <system.serviceModel>
    <bindings>
        <wsHttpBinding>
            <binding name="WSHttpBinding_IService">
                <security mode="Transport">
                    <transport clientCredentialType="Ntlm" />
                </security>
            </binding>
        </wsHttpBinding>
    </bindings>
    <client>
        <endpoint address="https://vabqia969vm:21011/" binding="wsHttpBinding"
            bindingConfiguration="WSHttpBinding_IService" contract="ServiceReference1.IService"
            name="WSHttpBinding_IService">
            <identity>
                <userPrincipalName value="VABQIA969VM\Administrator" />
            </identity>
        </endpoint>
    </client>
</system.serviceModel>

Не стесняйтесь, дайте мне знать, если проблема все еще существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...