Управление службой на удаленном сервере из IIS - PullRequest
1 голос
/ 26 ноября 2008

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

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

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 26 ноября 2008

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

Для начала нужно было бы Проверка подлинности и устранение неполадок Kerberos, проблемы делегирования

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

0 голосов
/ 26 ноября 2008

«ДРУГАЯ странная вещь об этом заключается в том, что, если я отлаживаю с моей локальной машины / подключаюсь к удаленному серверу, он работает каждый раз! Но я НЕ отлаживаю, каждый раз происходит сбой!»

Это четкое указание на то, что у вас есть проблемы с разрешениями. Когда вы запускаете в отладчике, вы работаете как вошедший в систему пользователь, когда вы не отлаживаете, он работает так, как настроено для использования 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#321756)

...