Аутентификация Windows

Данное руководство устарело. Актуальное руководство: Руководство по ASP.NET Core

Последнее обновление: 31.10.2015

Аутентификация Windows представляет один из способов аутентификации пользователя в системе. При использовании этой модели аутентификации при обращении пользователя к ресурсам веб-приложения вместе с HTTP-запросом посылается и токен безопасности Windows, который и верифицирует пользователя.

Аутентификацию на основе учетных записей Windows наиболее удобно применять к веб-приложениям, создаваемым по шаблону Intranet Application. Создадим такое приложение:

Intranet Application в MVC 4

По сути Intranet-приложение похоже на шаблон Internet Application, поскольку имеет уже готовую инфраструктуру. Однако оно нацелено именно на использование аутентификации Windows, поэтому мы не увидим в отличие от Internet Application контроллера AccountContoller и моделей, представляющих учетные записи.

Аутентификация Windows задана следующей строкой в файле web.config:

<authentication mode="Windows" />

Теперь настроим приложение на данный способ аутентификации. Для этого перейдем к свойствам проекта и установим для свойства Anonymous Authentication значение Disabled, а для свойства Windows Authentication значение Enabled:

Включение Windows Authentication

Теперь вся основная настройка сделана, и мы можем войти в приложение. При запуске нам будет предложено ввести логин и пароль. Поскольку мой логин на локальному компьютере "Eugene", то я и ввожу соответствующий логин, а также пароль, под которым я вхожу на своем локальном компьютере:

Вход в систему с аутентификацией Windows

В случае, если все данные введены верно, то пользователь успешно войдет в систему:

Настройка авторизации

Применяя фильтры авторизации, мы можем ограничить доступ к действиям контроллера или всему контроллеру для определенных ролей (используя группы в 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();
}
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850