Как автоматически войти на сайт ASP .NET, если они вошли в Active Directory? - PullRequest
1 голос
/ 08 сентября 2010

На сайте нашего клиента в настоящее время используется проверка подлинности с помощью форм, поэтому пользователям необходимо перейти на страницу входа в систему, чтобы ввести свое имя пользователя и пароль. Существуют пользовательские поставщики членства и ролей, которые получают доступ к базе данных через NHibernate для получения пользователей и ролей.

Клиент теперь хочет, чтобы пользователи из локальной Active Directory автоматически входили в систему. Сведения о пользователях и ролях по-прежнему следует получать из той же базы данных, что и раньше. В таблицу Users будет добавлено новое поле, содержащее имя пользователя Active Directory, чтобы я мог сопоставить его.

Если текущий пользователь не прошел проверку подлинности через Active Directory или ни одна запись в таблице Users не имеет совпадающего имени Active Directory, он должен будет перейти на страницу входа в обычном режиме. Чтобы было понятно: сайт все еще должен быть доступен извне (т.е. вне домена).

У меня есть тестовая система, которая включает в себя сервер IIS 6 и клиент под управлением IE7; оба являются членами тестовой Active Directory. Я пытался использовать HttpContext.Current.Request.LogonUserIdentity в сочетании с интегрированной безопасностью IIS, но он возвращает анонимный вход, кроме просмотра на localhost.

У кого-нибудь есть решение?

1 Ответ

3 голосов
/ 08 сентября 2010

Вы хотите проверить Встроенная проверка подлинности Windows . Это позволит отправлять имя пользователя и пароль Active Directory (хэшированные) по сети на сервер. Если они пройдут, вы можете перенаправить их на сайт, а если нет, нажать на страницу входа.

...