Я настроил службу WCF на сервере, который находится в своей собственной рабочей группе. Я пытался установить соединение TCP / IP с клиентом, который живет в корпоративном домене. Когда я пытаюсь открыть соединение, я получаю исключение SecurityNegotiationException с сообщением:
"Требование безопасности удаленной стороны
не был выполнен во время
аутентификация. Попробуйте увеличить
Уровень защиты и / или
Олицетворение уровня "Внутренний
Исключение гласит: «Вход в сеть
не удалось "
Поговорив с некоторыми коллегами о проблемах и выполнив некоторые исследования Google, я пришел к выводу, что проблема заключается в том, что клиент пытается войти на сервер, используя мой корпоративный сетевой логин и пароль. Поскольку сервер не является частью корпоративной сети, он не знает о моей корпоративной идентичности, а затем отклоняет попытку входа / подключения. Является ли этот анализ правильным или нет, я понятия не имею.
Результаты Google показывают, что, возможно, решение состоит в том, что мне нужно олицетворять учетную запись пользователя, которая существует на сервере. - Я также наткнулся на эту статью кода проекта, которая демонстрирует олицетворение пользователя. Поскольку единственной учетной записью на сервере является Администратор без пароля, я использовал домен в качестве IP-адреса компьютера как «10.0.0.11», имя пользователя как «Администратор» и пароль как «».
http://www.codeproject.com/KB/dotnet/UserImpersonationInNET.aspx?display=Print
К сожалению, это не с сообщением:
«Ошибка входа: неизвестное имя пользователя или неверный пароль»
Еще один намек на проблему: если клиент и сервер являются обоими компьютерами в корпоративной сети, проблем с подключением вообще не возникает.
Как я могу устранить ошибку и завершить соединение с сервером?
Несмотря на то, что это не лучшая практика, я полностью согласен с удалением любой защиты, поэтому я могу продолжать продвигать этот проект