Подтвердить что ты не робот

Аутентификация 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?

4b9b3361

Ответ 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 на производстве. Но я бы предложил пару тестовых итераций с тестовым сервером, если вы можете установить его в домене компании.