Данное руководство устарело. Актуальное руководство: Руководство по ASP.NET Core
Аутентификация Windows представляет один из способов аутентификации пользователя в системе. При использовании этой модели аутентификации при обращении пользователя к ресурсам веб-приложения вместе с HTTP-запросом посылается и токен безопасности Windows, который и верифицирует пользователя.
Аутентификацию на основе учетных записей Windows наиболее удобно применять к веб-приложениям, создаваемым по шаблону Intranet Application. Создадим такое приложение:
По сути Intranet-приложение похоже на шаблон Internet Application, поскольку имеет уже готовую инфраструктуру. Однако оно нацелено именно на использование аутентификации Windows, поэтому мы не увидим в отличие от Internet Application контроллера AccountContoller и моделей, представляющих учетные записи.
Аутентификация Windows задана следующей строкой в файле web.config:
<authentication mode="Windows" />
Теперь настроим приложение на данный способ аутентификации. Для этого перейдем к свойствам проекта и установим для свойства Anonymous Authentication значение Disabled, а для свойства Windows Authentication значение Enabled:
Теперь вся основная настройка сделана, и мы можем войти в приложение. При запуске нам будет предложено ввести логин и пароль. Поскольку мой логин на локальному компьютере "Eugene", то я и ввожу соответствующий логин, а также пароль, под которым я вхожу на своем локальном компьютере:
В случае, если все данные введены верно, то пользователь успешно войдет в систему:
Применяя фильтры авторизации, мы можем ограничить доступ к действиям контроллера или всему контроллеру для определенных ролей (используя группы в Windows) или пользователей:
[Authorize (Users=@"Eugene-ПК\Eugene")] public ActionResult Index() { return View(); } [Authorize(Roles="Admin, AllUsers")] public ActionResult About() { return View(); } [Authorize(Roles = "Admin")] public ActionResult Contact() { return View(); }