Использование Thinktecture IdentityServer с двухуровневой аутентификацией IIS 7/Integrated

Кто-нибудь успешно внедрил двухуровневую аутентификацию с помощью сервера идентификации thinktecture под управлением IIS 7.5?

Все решения, которые я пробовал, похоже, ориентированы на IIS 6/классический режим, я нашел одного парня, который, похоже, решил проблему по адресу:

http://mvolo.com/iis-70-twolevel-authentication-with-forms-authentication-and-windows-authentication/

Хотя ему не очень повезло заставить его играть с Thinktecture.

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




Ответы (1)


На самом деле это не поддерживается в ASP.NET (атрибут authenticationMode в web.config является перечислением по уважительной причине - либо Windows, либо Forms). Это ограничение IIS/ASP.NET.

Все подходы (например, от Майка) считаются «хаками». Они могут работать, но приложение ASP.NET сверху должно быть разработано для него/осведомлено об этом. IdentityServer — нет.

person leastprivilege    schedule 15.12.2013
comment
Есть ли у вас какие-либо предложения, как заставить эту функцию работать с IdentityServer? Или мне в основном придется устанавливать его дважды, один раз внутри домена и один раз снаружи? - person Mike; 16.12.2013
comment
Что ж, некоторые используют vdir, настроенный на Windows, — установите там файл cookie сеанса и перенаправьте в основное приложение. Тоже не идеально, но работает. Конечно, вам нужно будет реплицировать установщик файлов cookie IdSrv. (или другими словами - не поддерживается ASP.NET;)) - person leastprivilege; 17.12.2013