Использование встроенной аутентификации и анонимности Windows после перенаправления jakarta на IIS7

У меня есть купленное нами приложение, которое мне нужно интегрировать, и оно использует соединение jakarta для доступа к приложению из IIS.

Итак, основная операция:

  1. пользователь переходит на URL
  2. Перенаправляется в приложение
  3. SSO включен, поэтому перенаправлен обратно в IIS для получения учетных данных домена
  4. Вернуться к заявке
  5. Если имя пользователя пусто, отобразить страницу входа в систему, иначе впустите пользователя.

Это упрощение всех шагов, но основная идея здесь.

Моя трудность заключается в том, что мне нужна как встроенная аутентификация Windows, так и анонимная, поскольку у некоторых пользователей не будет учетных данных, и им нужно будет запросить имя пользователя / пароль.

Я уже посмотрел: Проверка подлинности Windows IIS перед анонимной, но пользователь не нажмите на ссылку, чтобы принять решение. Приложение возвращается к IIS в поисках login.aspx, и оттуда я хочу либо получить их учетные данные домена, либо передать обратно в приложение пустые строки, чтобы указать, что учетные данные отсутствуют.

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

Если я не могу заставить это работать, просто используя страницу ASP.NET, можно ли это сделать с помощью фильтра ISAPI или модуля?

ОБНОВЛЕНИЕ:

Я нашел возможное решение, но мне нужно выяснить, как заставить его работать, поскольку моя страница входа находится на сервере JBoss.

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


person James Black    schedule 07.06.2010    source источник


Ответы (1)


Сохраните аутентификацию в IIS как анонимную.

При загрузке домашней страницы проверьте АКТИВНЫЙ КАТАЛОГ для текущего зарегистрированного ИМЯ ПОЛЬЗОВАТЕЛЯ, если он существует

предоставить дополнительную функциональность текущему пользователю или с меньшим количеством опций.

Обратитесь -> Проверка Active Directory

person solairaja    schedule 07.06.2010
comment
Как мне получить имя пользователя, не заставляя IIS возвращаться в браузер для получения данных (запрос 401)? Я смотрю на Request.ServerVariables [AUTH_USER] и ServerVariables [LOGON_USER], и если анонимный включен, они оба в основном пусты. - person James Black; 07.06.2010
comment
это веб-приложение для интрасети? - person solairaja; 08.06.2010
comment
Это приложение для внутреннего и внешнего использования. Для внутреннего использования я хочу использовать встроенную аутентификацию, а для внешних им нужно будет войти в систему. В идеале одна веб-страница, на которую можно будет перейти для всех, без необходимости писать элементы управления ActiveX или плагины IE / Firefox / Safari. :) - person James Black; 08.06.2010
comment
Я принял ваш ответ, поскольку в итоге перешел на AUTH_USER, поскольку, если браузер находится в локальной доверенной интрасети, я могу получить учетные данные. - person James Black; 09.09.2010