Проверка подлинности NTLM с использованием пользовательской (asp.net) формы

Можно ли программно аутентифицировать пользователя с помощью NTLM (на asp.net)?

Я хотел бы контролировать внешний вид веб-сайта, где у меня будет форма, в которой пользователи вводят свое имя пользователя/пароль. Затем я бы запросил NTLM для проверки предоставленной информации и, если она действительна, перенаправил бы их в виртуальный каталог?


person Cloud SME    schedule 05.02.2010    source источник


Ответы (1)


NTLM — это протокол, по которому веб-браузер будет напрямую обращаться к веб-серверу (например, IIS) для аутентификации пользователя без участия вашего приложения. Это то, чего вы хотите избежать, потому что вы хотите представить «красивую» форму входа в систему.

Итак, что вам нужно сделать, это: запросить имя пользователя и пароль в форме и самостоятельно проверить эти учетные данные в Active Directory. Вот статья Microsoft, описывающая, как это сделать в ASP.NET: http://support.microsoft.com/kb/326340/en-us

Однако, пожалуйста, помните несколько моментов:

  • Не забывайте, что, в отличие от NTLM, пароли пользователей будут передаваться открытым текстом, если вы не используете SSL для публикации веб-сайта. Вы никогда не должны позволять пользователям вводить свой пароль AD на незашифрованном веб-сайте.
  • Если некоторые из ваших пользователей были автоматически аутентифицированы (прозрачный вход в систему, вообще без запроса пароля) ранее, что должно быть поведением по умолчанию в сценарии интрасети, этим пользователям не понравится ваша форма входа, независимо от того, насколько красиво она выглядит. .
  • По умолчанию в IIS6 будут защищены только страницы, созданные ASP.NET; поскольку вам придется настроить IIS для разрешения анонимных запросов к приложениям, статические файлы могут быть запрошены любым пользователем.
person realMarkusSchmidt    schedule 05.02.2010