Аутентификация Active Directory и пользовательские роли - PullRequest
1 голос
/ 30 июня 2011

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

Кроме того, где хранится дополнительная информация (кроме сведений об AD) о пользователе, такая как имя пользователя, отдел, текущий проект и т. Д.

Снимок Active Directory, часто используемый и сохраняемыйв таблице в базе данных, которая затем используется в соединениях SQL?

Ответы [ 2 ]

1 голос
/ 30 июня 2011

Базовый поставщик членства (и производные поставщики, такие как ActiveDirectoryMembershipProvider) используют имя_пользователя в качестве функционального ключа (запросы для членов ожидают имя_пользователя в качестве параметра запроса ключа и возвращают один объект MembershipUser).Эти запросы возвращают объекты MemberShipUser, которые имеют базовую информацию о членстве, включая роли, электронную почту, комментарии и т. Д. Если вы хотите объединить провайдера ADMembership с дополнительной информацией, лучше всего использовать UserName в качестве ключа для этого.Хранить дополнительные данные проще, если вы используете базу данных, потому что .UpdateUser фиксирует только свойства Email, Comment и IsApproved.

И нет, снимки не создаются, хотя вы можете включить кэширование, если хотите.Поставщик запрашивает AD напрямую, когда ему нужна информация.

0 голосов
/ 30 июня 2011

База данных членства aspnet, когда она создается, находится в папке App_Data и очень удобна, поскольку она очень хорошо поддерживает все элементы управления Login.Роли пользователей могут очень хорошо управляться менеджером конфигурации aspnet.Все свойства профиля управляются самой базой данных.

Созданную таким образом базу данных можно увидеть в соединениях с сервером.Если вы проанализируете базу данных, вы увидите, что у каждого пользователя есть определенный идентификатор пользователя, кроме имени пользователя.Оба они уникальны.Вам не нужно копировать все пользовательские данные в другие таблицы.Вы можете указать связанные данные, используя соединения.Как только пользователь вошел в систему, вы можете отослать его / ее с помощью User.Identity.Name (c #) в своем коде позади.

Пожалуйста, просмотрите таблицы базы данных, используя обозреватель сервера в Visual Studio, и вы можете просматривать структуры таблиц- aspnet_Users, aspnet_Membership, aspnet_Profile и т. Д. *

...