Смешанная аутентификация Asp.MVC и WCF

#asp.net-mvc #wcf #authorization

#asp.net-mvc #wcf #авторизация

Вопрос:

У меня есть веб-службы WCF, размещенные в ASP.NET применение. Для asp.net часть Я использую проверку подлинности Forms для веб-служб, которые я хочу использовать для проверки подлинности Windows. После настройки этого вызывающий сервис перенаправляется на страницу входа в веб-приложение. Я попытался исключить папку, в которой размещены веб-службы WCF, но не смог заставить ее работать.

Можно ли это настроить или я должен разместить свой WCF как отдельный сайт в iis?

Редактировать

После еще нескольких поисков в Google я обнаружил, что это возможно, но не так просто, как хотелось бы 🙂 Часть, которая мне особенно не нравится, заключается в том, что мое приложение должно иметь эту оболочку в GC, или приложение должно иметь разрешения на полное доверие: (

http://mvolo.com/blogs/serverside/archive/2008/02/11/IIS-7.0-Two_2D00_Level-Authentication-with-Forms-Authentication-and-Windows-Authentication.aspx

Я попробую и сообщу вам, как все прошло.

Ответ №1:

Правильно ли вы настроили свои привязки WCF в web.config?

Вот ссылка о том, как это настроить:

http://www.codeproject.com/KB/WCF/WCFBasicHttpBinding.aspx

Комментарии:

1. Ну, мне нужно использовать аутентификацию обеих форм для приложения asp.mvc, а затем одновременно windows для ws. Мне нужно как-то разделить эти два, если это вообще возможно…

2. Я не уверен, что тогда это сработает. Проблема заключается в настройках аутентификации непосредственно в виртуальном каталоге IIS для веб-приложения. При использовании проверки подлинности Windows в WCF виртуальный каталог IIS должен включить проверку подлинности Windows и отключить анонимный доступ; но ASP.NET webforms, использующие проверку подлинности forms, требуют, чтобы в виртуальном каталоге IIS был включен «анонимный доступ». Два режима конфликтуют друг с другом. Я не уверен, как вы собираетесь разрешить этот конфликт.

3. Есть обходной путь, посмотрите на мой пост, я его отредактировал. Eaven Мне не нравится предложенное решение, я попробую его…

Ответ №2:

Есть ли у вас ASP.NET режим совместимости отключен для служб WCF?. Если она включена, ASP.NET сначала попытается аутентифицировать пользователя. В противном случае он должен перейти прямо в WCF.

Ответ №3:

Решение, которое я нашел в Google, работает, но я не собираюсь его использовать, потому что созданное мной приложение не должно иметь разрешений на полное доверие, и я также не хочу размещать оболочку в GAC. Итак, решение, к которому я пришел, — разделить приложение WS и asp.mvc на два сайта в iis.