Исключение согласования безопасности WCF - PullRequest
0 голосов
/ 07 февраля 2012

Мы используем нижеуказанную конфигурацию безопасности для наших сервисов

Конфигурация:

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

В нашей локальной сети при доступе к сервисам мы получаем следующие исключения от некоторых клиентов:

System.ServiceModel.Security.SecurityNegotiationException: The caller was not authenticated by the service. ---> System.
ServiceModel.FaultException: The request for security token could not be satisfied because authentication failed.
   at System.ServiceModel.Security.SecurityUtils.ThrowIfNegotiationFault(Message message, EndpointAddress target)
   at System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingMessageBody(Message incomingMessage, Sspi
NegotiationTokenProviderState sspiState)

Я собрал следы WCF, но это не помогло.Я предполагаю, что Windows Kerberos не может подтвердить подлинность Windows.Я проверил, что данные клиентского компьютера / пользователя, вошедшего в систему, доступны в ADS, а сервер и клиенты находятся в одном домене.

Пожалуйста, дайте мне знать, если у вас есть какие-либо решения для этой проблемы.

Большое спасибо заранее за вашу помощь.

1 Ответ

0 голосов
/ 07 февраля 2012

Это может быть временным искажением. Попробуйте посмотреть, отличаются ли часы затронутых клиентов.

В противном случае. Если вы можете присоединить отладчик Visual Studio к клиентскому коду и отключить «просто мой код», вы можете нарушить внутренние исключения в WCF. По умолчанию WCF скрывает все внутренние исключения.

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