Аутентификация форм ASP.NET только с именем пользователя

StackOverflow https://stackoverflow.com/questions/197357

Вопрос

У меня в руках какая-то гибридная ситуация. Я пишу интранет asp.net веб-приложение. Я не хочу использовать полноценную проверку подлинности Windows, поскольку в Active Directory не настроены надлежащие группы для проверки подлинности пользователей, просто исходя из того, в какую группу они входят. До сих пор я создавал базу данных членства и вручную проверял подлинность пользователей на основе их логина NT. Приложение становится все более сложным, и я смотрю на использование провайдеров членства и ролей для аутентификации пользователей. Вот моя проблема: я хочу иметь возможность аутентифицировать пользователей только на основе их NT, но я не хочу использовать аутентификацию Windows. Я хочу написать своего собственного провайдера, чтобы подключиться к провайдерам членства и ролей и использовать проверку подлинности с помощью форм, но сделать ее прозрачной. Основываясь на таблице «Пользователи», я хочу иметь возможность аутентифицировать пользователя или перенаправлять его на основе только его NT. Возможно ли это, или я застрял в написании собственной небольшой основы для достижения этой цели? Я хотел бы использовать возможности провайдера, если это вообще возможно.

Это было полезно?

Решение

Настройте web.config для использования проверки подлинности с помощью форм.
Убедитесь, что в IIS включена встроенная проверка подлинности (может потребоваться также отключить анонимный доступ). Это позволит вам получить имя NT пользователя.

Вы можете получить имя NT пользователя с помощью:

  Request.ServerVariables["LOGON_USER"]  

Вы можете войти в систему, пароль не требуется, с помощью:

  FormsAuthentication.RedirectFromLoginPage( userName, false ); 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top