Аутентификация Windows для ASP.NET MVC 4 - как это работает, как протестировать его
Я никогда не использовал проверку подлинности Windows для веб-приложений ASP.NET MVC, но аутентификации форм. Недавно у меня было веб-приложение ASP.NET MVC 4, для которого требуется реализация проверки подлинности Windows для пользователей, которым предоставлено право входа на веб-сервер моей компании. Итак, у меня есть некоторые вопросы относительно проверки подлинности Windows. Я использую Visual Studio 2012.
-
Как работает проверка подлинности Windows?
-
Как правильно выполнить проверку подлинности Windows в файле web.config?
-
Как проверить, действительно ли проверка подлинности Windows работает на моем веб-сайте ASP.NET MVC 4? Другими словами, как проверить его на локальном компьютере разработки с локальным IIS (версия 8), а также на моем реальном веб-сервере моей компании с IIS версия 7?
Ответы
Ответ 1
Я нашел полезное видео, которое было очень полезно для меня, показывая шаг за шагом, чтобы реализовать и протестировать проверку подлинности Windows для веб-сайта ASP.NET MVC. Итак, я закрываю этот вопрос.
Видео с очень доброго плаката:
Как реализовать проверку подлинности Windows в приложении ASP.NET MVC 3 (Model view controller)?
Ответ 2
Для IIS 8.5 и MVC 4:
Как работает проверка подлинности Windows?
В этом режиме User.Identity
(как в HttpContext.Current.User.Identity
) заполняется базовым веб-сервером. Это может быть IIS Express в ссылке из @R Kumar, продемонстрированной или полностью раздутой IIS, как в видео от @Thomas Benz.
В частности, User.Identity является объектом WindowsIdentity. Например. следующий приведение будет работать:
WindowsIdentity clientId = (WindowsIdentity)HttpContext.Current.User.Identity;
Как правильно выполнить проверку подлинности Windows в файле web.config?
<system.web>
<authentication mode="Windows" />
...
Как проверить, действительно ли проверка подлинности Windows работает на моем веб-сайте ASP.NET MVC 4? Другими словами, как я могу проверить его на локальном компьютере разработки с локальным IIS (версия 8) и на моем реальном веб-сервере моей компании с IIS версии 7?
Сначала измените авторизацию ASP.NET, чтобы исключить текущего пользователя. Например.
<system.web>
<authentication mode="Windows" />
<authorization>
<allow users="yourdomain\someotheruser" />
<deny users="*" />
</authorization>
Во-вторых, включите проверку подлинности Windows для своего сайта с помощью диспетчера IIS. Это под функцией "Аутентификация". И отключите анонимную аутентификацию.
Обратите внимание, что более раннее объяснение предложит вам внести изменения в элемент вашего сайта web.config. Однако недавние реализации IIS предотвращают это по соображениям безопасности.
Три, укажите свой браузер на веб-странице. Браузер должен попросить вас предоставить учетные данные, поскольку текущему пользователю не разрешен доступ к веб-сайту. Укажите те, которые разрешены для сайта, и ваш код MVC должен работать.
Четыре, проверьте идентификатор пользователя. Например.
WindowsIdentity clientId = (WindowsIdentity)HttpContext.Current.User.Identity;
Ответ 3
Я сделал это с помощью ASP.NET MVC 1.0. Это было относительно давно. Я помню, что настройки IIS запутывают. Я просто сделал некоторые проверки, и это не выглядит так, как что-то многое изменилось для ASP.NET MVC 4.0 до атрибутов на контроллерах.
По всем вопросам:
-
Как это работает? Следующие ссылки в значительной степени суммируют ситуацию. Аутентификация пользователей с проверкой подлинности Windows (С#)
НЕ подходит для ASP.NET MVC 4.0, но имеет некоторый фон.
Как создать сайт Intranet с использованием ASP.NET MVC для ASP.NET MVC 3.0.
Я слишком новичок, чтобы размещать более двух ссылок, поэтому вам придется искать MSDN для "AuthorizeAttribute Class" для .NET Framework 4.
-
Какие настройки для web.config? - Я просто помню, как менял один элемент, "режим аутентификации".
-
Что касается тестирования, то мои версии ОС Windows соответствовали лучшему, а моя машина разработки была в том же домене Windows. Но если я правильно помню, это просто сработало. YMMV, но одна вещь, о которой я помню, - это реализация моей собственной авторизации. Возможно, это проспект для вашего дела, сворачивать свой собственный, а затем переключиться на проверку подлинности Windows на производстве. Но я бы предложил пару тестовых итераций с тестовым сервером, если вы можете установить его в домене компании.