Реклама:

<deny users="*" /> </authorization>

[3 ПРИМЕЧАНИЕ Несмотря на то что в данном решении испопьзуется аутентификация Forms, вы не можете напрямую олицетворять пользователей Windows в гпавном приложении. Поскольку имя учетной записи Windows доступно для пользователей, регистрирующихся с помощью окна WinLogon, для получения маркеров вы опять-таки можете использовать переноса протоколов.

Модификация конвейера

Для поддержки смешанного режима аутентификации в одном приложении следует изменить стандартное поведение конвейера HTTP путем добавления в него двух новых модулей и изменения порядка, в котором выполняется обращение к встроенным модулям.

Выбрав это решение, IIS конфигурируют для анонимной и интегрированной аутентификации, а ASP.NET — для аутентификации Forms. При включении указанных опций IIS рассматривает все подключения как анонимные, пока в ответ на запрос не будет отправлен код состояния ошибки 401 (unauthorized). В таком случае IIS попытается выполнить аутентификацию пользователя и, если она будет успешной, повторно выполнит запрос. Новые модули используют код секции конфигурации в файле web.coiifig, чтобы определить, должен ли исходный IP-адрес клиента использовать аутентификацию Windows или Forms. Для аутентификации Windows следует указать IP-адреса внутренней сети, а все остальные IP-адреса рассматриваются как внешние.

Секция конфигурации

<!— Эти диапазоны IP должны использовать аутентификацию Windows --> <windowsAuthIpRanges> <ipRanges> <add

description'"local host" start="127.0.0.V end="127.0.0.1" /> <add

description="suunct 1" start="192.168.1. Г end*"192.168.1.254" /> </lpRanges> </windowsAuthIpHanges>

В событии Authenticate Request работа модуля FormsAutkenticaäon Module заключается в поиске билета аутентификации Forms, отправленного от клиента, и в его преобразовании в управляемый принципал, который не зависит от Context.User. Работа данного модуля в событии EndRequest состоит в преобразовании любого запроса с кодом состояния 401 (unauthorized) для перенаправления на страницу регистрации. Таким образом, при выполнении аутентификации Windows вы должны передать код состояния 401 на Web-сервер, то есть перехватывать модуль Forms Authentication-Module в его обработчике события EndRequest не понадобится. По сути, нужно лишь скрыть код состояния 401 от обработчика событий Forms, а затем восстановить его для передачи в IIS.

Это означает, что вам нужно установить модули, которые прослушивают событие EndRequest, до и после модуля FormsAutkenticationModule, и эти модули смогут скрывать, а также восстанавливать код состояния 401. Чтобы реорганизовать список модулей, его сначала следует очистить, а затем создать заново и заполнить вставляемыми модулями.

<httpModules> <clear />

<add

nante=" p reFor msAu с h"

type="DM.PreFormsAuthModule. MixedModeSecurityModule"/> <add

name=" Fo rmsAnthenticat ion"


⇐ Предыдущая страница| |Следующая страница ⇒