Как повысить роль в ASP.net От анонимной до Windows Auth? - PullRequest
1 голос
/ 27 июля 2011

У меня есть несколько сайтов, которые позволяют одновременно анонимным и оконным пользователям авторизоваться. В основном, если вы заходите на сайт с помощью браузеров на базе IE или Webkit в системе Windows, сервер мгновенно распознает пользователя и группу вашего активного каталога.

В прошлом я предоставлял ссылку на страницу только для проверки подлинности Windows, которая позволяет текущему пользователю входить в систему или возвращаться туда, откуда он начал.

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

Есть ли лучший способ для меня, чтобы позволить пользователю повышаться от анона до аутентифицированного?

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Нет другого способа сделать это повышение автоматически.Сервер не может знать, что текущий пользователь является пользователем Windows, и повышать их уровень или автоматически перенаправлять их на страницу проверки подлинности только Windows.С другой стороны, если каждый пользователь пройдет через страницу проверки подлинности только Windows, все они, не входящие в домен, увидят диалоговое окно «запрос / ответ» (пользователь + пароль).

Что касается управленияЧтобы убедиться, что эта специальная страница имеет правильные настройки безопасности, вы можете (и должны) каким-то образом автоматизировать проверку.Например, запросив метабазу IIS для этого параметра при запуске приложения (в Global.asax) и, если его нет, зарегистрируйте его как сообщение электронной почты или около того.

Лично я предпочитаю другое отношение - специальную страницу «интеграция / развертывание», которая содержит серию тестов для моего приложения, чтобы я мог убедиться, что все настроено правильно на сервере, то есть разрешения NTFS на запись в определенные папки, доступность SMTP-сервераустановите в web.config отправку электронной почты и т. д.

Примечание: Вы используете проверку подлинности Windows вместе с анонимным доступом.Просто имейте в виду, что если вы планируете внедрить проверку подлинности с помощью форм в будущем, неправильная архитектура (я не знаю, из-за этого или из-за недостатка) IIS 7 не позволяет установить для приложения проверку подлинности с помощью форм и установитьопределенная страница для проверки подлинности Windows.Переопределение просто не работает, и это очень расстраивает.

Удачи!

0 голосов
/ 03 августа 2011

Хорошо, я нашел довольно хороший способ сделать это ... однако он не так элегантен, как я надеялся, поскольку он не работает в разных приложениях.

По сути, если вы создаете одну страницу на своем веб-сайте Anon + Integrated Auth IIS6 или в виртуальном каталоге, назовем его auth.aspx, то вы можете использовать эту страницу для запроса аутентификации.

Зайдите в настройки IIS и укажите, что auth.aspx - ТОЛЬКО интегрированная аутентификация (без анона). Затем создайте скрытый iframe где-нибудь на своей странице. Затем я создал простое действие JavaScript для обновления атрибута src iframe на странице auth.aspx. Это заставляет браузер пытаться аутентифицироваться с использованием NTLM. После того, как вы ввели действительные учетные данные, вы успешно повысили статус текущего пользователя до общего анонимного пользователя.

Последним шагом было включение Response.Redirect в auth.aspx, который перезагружает текущую страницу. При условии, что ваши токены сеанса ASP.net установлены правильно, страница перезагрузится и пользователь будет аутентифицирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...