2008-10-13 5 views
0

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

+0

Какие конкретные недостатки проверки подлинности Windows вы пытаетесь преодолеть ? (Тот же вопрос для вашей пользовательской базы данных). – Greg 2008-10-13 20:11:25

ответ

7

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

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

Request.ServerVariables["LOGON_USER"] 

Вы можете зарегистрировать пользователя в, без пароля, с:

FormsAuthentication.RedirectFromLoginPage(userName, false); 
Смежные вопросы