Вопрос

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

У меня есть веб-приложение, которое управляет службой на удаленном компьютере (через ServiceController ). Когда я подключаюсь к веб-сайту удаленно и пытаюсь контролировать службу, я получаю исключение InvalidOperationException: доступ запрещен.

Я знаю, что это МОЖЕТ работать, потому что, когда я подключаюсь к веб-сайту с веб-сервера (удаленный рабочий стол, войдите в систему как пользователь моего домена, а затем откройте веб-страницу), он работает должным образом.

Я настроил IIS и ASP.NET, чтобы требовать проверки подлинности Windows и олицетворения. Я регистрирую участника текущего потока, когда это не удается, и вижу, что поток работает под моей идентификацией, независимо от того, подключаюсь ли я удаленно или с самого сервера.

Я пытался заставить IIS одновременно использовать аутентификацию Kerberos, NTLM и обе; сообщает ли мой принципал свой AuthenticationType как «Согласовать» или «NTLM»; это не важно Ни один из них не работает, когда я подключаюсь удаленно (с моего локального компьютера)

Еще одна странная вещь в этом заключается в том, что если я отлаживаю со своего локального компьютера / подключаюсь к удаленному серверу, это работает каждый раз! Но я НЕ отлаживаю, это каждый раз дает сбой!

Что, черт возьми, здесь может происходить?

Это было полезно?

Решение

Ваш сценарий - делегирование, а не подражание. Делегации трудно достичь, и это зависит от многих вещей, которые сделаны правильно.

Начнем с проблем с делегированием Kerberos для проверки подлинности и устранения неполадок

Блог Дэвида Вана - очень полезный ресурс по этим вопросам.

Другие советы

" Еще одна странная вещь в том, что, если я отлаживаю с моей локальной машины / подключаюсь к удаленному серверу, это работает каждый раз! Но я НЕ отлаживаю, это каждый раз дает сбой! & Quot;

Это четкое указание на то, что у вас есть проблемы с разрешениями. Когда вы запускаете в отладчике, вы работаете как вошедший в систему пользователь, когда вы не отлаживаете, он работает так, как настроено для использования IIS (NETWORK SERVICE по умолчанию). Попробуйте установить (временно!) Включить анонимный доступ, используя учетную запись домена в качестве пользователя, и посмотрите, работает ли это. Если это так, то это означает, что ваш IIS не настроен должным образом для олицетворения (и, вероятно, он работает как NETWORK SERVICE).

Разрешения в IIS могут быть немного c h для точной настройки ... Удачи!

P / S: это больше похоже на вопрос сетевого администрирования, чем на вопрос программирования (см. https://stackoverflow.com/questions/321618/stackoverflow-is-for-programming-questions-here-are-some-better-forums-for-your # 321 756 )

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top