Использование службы с проверкой подлинности Windows для разработки клиентов в Visual Studio - PullRequest
2 голосов
/ 09 марта 2012

У меня есть служба, размещенная на сервере. Служба проверки подлинности использует проверку подлинности Windows. Я хочу использовать этот сервис при разработке своего веб-сайта в Visual Studio 2010. При попытке добавить ссылку появляется следующая ошибка.

“Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts this service.”

Что я должен сделать, чтобы преодолеть это и иметь возможность использовать сервис для разработки?

Примечание: сообщение об ошибке очевидно. То, что я ищу, - лучший способ преодолеть это.

Примечание. Когда я набираю адрес службы в Mozilla Firefox, он запрашивает мои учетные данные Windows - при вводе учетных данных он дает мне описание службы. Проблема в том, когда я использую его через Visual Studio.


1 Ответ

1 голос
/ 10 марта 2012

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

При попытке добавить ссылкуVS запустит ваш сайт в фоновом режиме, используя любой веб-сервер, определенный в Свойствах проекта.Вы говорите, что запускаете свой сайт, используя встроенный веб-сервер (также известный как Cassini или Webdev).Вы должны убедиться, что ваш сайт использует проверку подлинности Windows.Это можно сделать из свойств проекта службы (щелкните правой кнопкой мыши корневую папку и выберите «Свойства»).Там вы увидите вкладку Web, в которой есть флажок Аутентификация NTLM - убедитесь, что установлен этот флажок.

Также убедитесь, что вы используете:

<system.web>
   <authentication mode="Windows">
...

в вашем файле web.config.

Однако, если вы хотите использовать сам IIS, я предполагаю, что вы установили его и знаете, как определить веб-приложение.В зависимости от того, какую версию Windows вы используете, у вас может быть установлен или не установлен IIS, или его нельзя установить (используя Программы и компоненты из Панели управления).Если у вас нет IIS, вы можете установить IIS Express отсюда: http://learn.iis.net/page.aspx/868/iis-express-overview/

После того, как вы установили IIS и определили корневой каталог приложения и указали каталог на локальную исходную папку, включите Windows (NTLM).Аутентификация для этого веб-приложения / сайта.То, как вы это сделаете, зависит от того, какую версию IIS вы используете, но обычно это происходит нажатием на значок аутентификации.Вероятно, вам необходимо отключить анонимный доступ, а также включить проверку подлинности Windows, чтобы все запросы были принудительно переведены в проверку подлинности Windows.Для браузеров, которые не поддерживают автоматическую проверку подлинности NTLM, я также включаю проверку подлинности Basic Forms.

После определения приложения IIS его можно использовать для отладки в Visual Studio вместо встроенного веб-интерфейса.сервер.Это также можно сделать в Свойствах проекта, выбрав «Использовать локальный сервер IIS» и выбрав URL-адрес сайта IIS, который вы создали выше.В качестве альтернативы VS может создать для вас определение сайта IIS, если оно еще не существует.

Любой из вышеперечисленных методов должен гарантировать, что при запуске вашего сайта VS для добавления ссылки он будет использовать аутентификацию, так какну как во время выполнения.Обратите внимание, что вы можете добавить ссылку вручную, без необходимости запуска сайта.Тогда вам просто нужно убедиться, что у вас есть проверка подлинности Windows во время выполнения, как описано выше.

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