Встроенное приложение для проверки подлинности Windows, если пользователь отменяет запрос, могу ли я перенаправить их на другую страницу? - PullRequest
0 голосов
/ 30 марта 2010

РЕДАКТИРОВАТЬ ~ Обновлены заголовок и тело вопроса: это правка.

Мне нужно такое поведение для каждого приложения в IIS6 / 7. Сначала я спросил об этом, прежде чем мы перешли на IIS7, поэтому любой ответ можно изменить между ними (с тех пор я немного узнал об IIS7;]), но я ищу ответ, который действительно работает.

Мне нужно перенаправить приложение, а не сервер, на основании того, что пользователь отменил запрос аутентификации 401 (имеется в виду код ошибки 401.1). Надеюсь, это поможет.


На IIS6, используя проверку подлинности NTLM (имеется в виду встроенную проверку подлинности Windows), если пользователь отменяет запрос проверки подлинности, как я могу перенаправить их на другую страницу? Я не могу просто взять 401 (пробовал) или 401.1 (не int) в web.config.

Я не могу перенаправить, если проблема в статусе 401, потому что я намеренно добиваюсь 401, чтобы получить ответ, да? Итак, как мне захватить, когда они отменены на вызов браузера?

Чтобы подтвердить, что со мной все в порядке: если я открываю firefox и перехожу на страницу IWA, он показывает мне диалоговое окно (при условии, что я не настроил это в about: config), и я ввожу учетные данные Windows для использовать. Я хочу помешать им остановить эту коробку.

1 Ответ

1 голос
/ 07 декабря 2010

Я знаю, что это старый, но некоторые типы ответов не передаются в .net для обработки. Вместо этого они должны обрабатываться на уровне IIS. Если вам нужна другая страница, основанная на ответе, вам нужно зайти в диспетчер IIS и найти раздел, который управляет страницами ошибок (в зависимости от используемой версии IIS.

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

Я знаю, что вы упомянули IIS 6, но у меня нет доступа к одному из этих серверов. Для IIS 7, нажмите на сайт. Перейдите в раздел IIS> Страницы ошибок. Нажмите Добавить. Введите код (401.1) и укажите путь к странице вашего сайта. Убедитесь, что эта страница доступна для анонимных пользователей.

UPDATE:
Я нашел новую информацию. Вы можете справиться с этим в вашем web.config. Для получения более подробной информации смотрите следующий сайт: learn.iis.net

В разделе ошибок вашего web.config сделайте следующее (как пример):

 <error statusCode="401" subStatusCode="1" prefixLanguageFilePath="c:\inetpub\custerr" path="401_1.htm" />

Я не знаю, можете ли вы использовать для этого ASPX-страницы, но это точно выглядит так. Однако, вероятно, они должны быть полностью автономными.

Документация Microsoft по субтаткоду находится на MSDN . По их словам, он работает ТОЛЬКО на IIS 7, .Net 3.0+ и при использовании режима интегрированного конвейера. Это может быть немного ограничено в зависимости от вашего приложения.

...