поставщик членства в активном каталоге и данные пользователя

Если я использую активный каталог в качестве хранилища пользователей, как мне связать информацию в моей базе данных с конкретным пользователем? Должен ли я вставлять их в базу данных после их аутентификации (что мне кажется избыточным) или я использую поставщика членства в рекламе только для аутентификации, а я должен использовать поставщика членства SQL?


person Robert    schedule 25.03.2013    source источник


Ответы (1)


Провайдеры членства занимаются только аутентификацией. Авторизация (что не то же самое, что аутентификация) выполняется вашей логикой, возможно, с помощью поставщика ролей.

Вы можете использовать Active Directory для ролей, но вам нужно будет использовать внешнюю реализацию, поскольку ASP.NET не включает одну готовую версию (например, http://www.codeproject.com/Статьи/28546/Active-Directory-Roles-Provider).

Если вы используете AD для членства, но хотите отслеживать пользователей в своей базе данных, вы захотите использовать атрибут objectGUID пользователя AD, потому что он одновременно уникален и неизменяем, другие свойства, такие как cn и objectSid, уникальны, но не являются неизменяемыми.

Лично я не использую функции членства / ролей / профилей ни в одном проекте ASP.NET, над которым я работаю, потому что они требуют специальной обработки, которая создает логически отдельную проблему в вашем приложении, которая не всегда связана со всем остальным в вашем приложении, особенно если вы используете ORM для своих объектов. Даже если вы реализуете своих собственных поставщиков, чтобы избежать осложнений с внутренней моделью сущности вашего приложения, вы все равно столкнетесь с проблемами, потому что объект Membership предоставляет новый интерфейс для вашей модели, который вам все еще необходимо реализовать поверх любой существующей системы управления пользователями, которая у вас есть. . Следовательно, я рекомендую использовать членство / роли / профили только для ультра-простых веб-сайтов.

person Dai    schedule 25.03.2013
comment
Спасибо за ответ. Какой путь вы порекомендуете не только для ультра-простых сайтов? - person Robert; 26.03.2013
comment
@Robert Я не могу сказать, я ничего не знаю о ваших требованиях :) (но обычно это начинается с того, что я сначала выдумываю архитектуру приложения и дизайн базы данных). - person Dai; 26.03.2013