Модуль WIF SessionAuthenticationModule не выполняется правильно

У меня возникает странная ситуация, которую я пытаюсь диагностировать и буду признателен за любой совет, где искать.

У меня есть приложение ASP.NET, использующее WIF, которое содержит другое приложение ASP.NET в качестве дочернего в IIS 7.5. Это дочернее приложение содержит веб-службу на основе REST. Доступ к этой службе напрямую путем вставки URL-адреса в браузер приведет к перенаправлению на страницу входа ADFS. Вот как я ожидаю, что это сработает. Странно то, что у меня есть вторая среда с теми же развернутыми приложениями и службами, и в этой среде меня никогда не перенаправляют на страницу входа.

Я проверил, что все файлы web.config идентичны, а также проверил все настройки IIS, которые, по моему мнению, могут быть связаны. Для просмотра веб-страниц во второй среде требуется вход в систему, но не при просмотре непосредственно файла REST .svc. Я проверил все HttpModules и сопоставления обработчиков в IIS. Я также включил трассировку событий Microsoft.IdentityModel, и в первой среде можно увидеть базовые записи для перенаправления на STS. Во второй среде я не вижу событий WIF. Кажется, что SessionAuthenticationModule вызывается, когда я исследую поток данных с помощью трассировки неудачных событий IIS, но я не уверен, почему он не требует проверки подлинности.

Я знаком с проблемами, связанными с файлами cookie в WIF, и убедился, что все настройки cookieHandler верны. Я также закрыл окна браузера и очистил все файлы cookie, чтобы убедиться, что модуль SessionAuthenticationModule не видит предыдущие файлы cookie WIF.

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


wif
person Brice Williams    schedule 24.01.2012    source источник


Ответы (2)


Если у вас есть одно и то же приложение в двух разных средах, привязанных к одному и тому же экземпляру ADFS, URL-адреса должны быть разными, поэтому меня озадачивает утверждение «все файлы web.config идентичны»?

Вы пробовали повторно запустить FedUtil в приложении, которое не работает?

Также проверьте настройки AppPool.

person rbrayb    schedule 24.01.2012

После множества проб и ошибок и тщательного изучения файлов applicationHost.config между двумя серверами я обнаружил, что это было вызвано разницей в порядке обработки HTTP-обработчиков. Обработчик ExtensionlessUrl-Integrated-4.0 собирал запрос на одном сервере и перенаправлял его в ADFS. На другом сервере обработчик svc-Integrated-4.0 первым отвечал на запрос. Подробнее об этом поведении можно прочитать здесь: http://support.microsoft.com/kb/2520479

person Brice Williams    schedule 03.02.2012