Аутентификация форм ASP.NET только с именем пользователя
-
10-07-2019 - |
Вопрос
У меня в руках какая-то гибридная ситуация. Я пишу интранет asp.net веб-приложение. Я не хочу использовать полноценную проверку подлинности Windows, поскольку в Active Directory не настроены надлежащие группы для проверки подлинности пользователей, просто исходя из того, в какую группу они входят. До сих пор я создавал базу данных членства и вручную проверял подлинность пользователей на основе их логина NT. Приложение становится все более сложным, и я смотрю на использование провайдеров членства и ролей для аутентификации пользователей. Вот моя проблема: я хочу иметь возможность аутентифицировать пользователей только на основе их NT, но я не хочу использовать аутентификацию Windows. Я хочу написать своего собственного провайдера, чтобы подключиться к провайдерам членства и ролей и использовать проверку подлинности с помощью форм, но сделать ее прозрачной. Основываясь на таблице «Пользователи», я хочу иметь возможность аутентифицировать пользователя или перенаправлять его на основе только его NT. Возможно ли это, или я застрял в написании собственной небольшой основы для достижения этой цели? Я хотел бы использовать возможности провайдера, если это вообще возможно.
Решение
Настройте web.config для использования проверки подлинности с помощью форм.
Убедитесь, что в IIS включена встроенная проверка подлинности (может потребоваться также отключить анонимный доступ). Это позволит вам получить имя NT пользователя.
Вы можете получить имя NT пользователя с помощью:
Request.ServerVariables["LOGON_USER"]
Вы можете войти в систему, пароль не требуется, с помощью:
FormsAuthentication.RedirectFromLoginPage( userName, false );