Проверка подлинности NTLM с использованием пользовательской (asp.net) формы - PullRequest
3 голосов
/ 06 февраля 2010

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

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

1 Ответ

5 голосов
/ 06 февраля 2010

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

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

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

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