Пользовательский поставщик ролей с аутентификацией ActiveDirectory - PullRequest
2 голосов
/ 21 февраля 2010

Я создаю собственный поставщик ролей на основе поставщика ролей ASP.NET. У меня есть 3 таблицы. Один для пользователей, один для ролей, один для UsersInRoles. В таблице Users нет столбца пароля, поскольку пользователи проходят проверку подлинности с помощью ActiveDirectory. Это мой подход до сих пор. Я не могу заставить провайдера ролевой роли работать, у кого-то такая же ситуация, как и у меня. Как сделать так, чтобы пользовательский поставщик ролей работал с AD?

Ответы [ 2 ]

1 голос
/ 22 августа 2011

Что я сделал: создайте класс, который наследуется от System.Web.Security.RoleProvider, и выберите «Реализовать абстрактный класс» в контекстном меню при нажатии на : Roleprovider. Я реализовал только метод GetRolesForUser (другие методы throw NotImplementedException).

В определенный момент я подумал, что мне также необходимо реализовать MembershipProvider, но это было исправлено простым дополнением к web.config (поскольку сборка отсутствует в GAC, в атрибуте type вам нужно упомянуть только пространство имен + имя типа; не имя сборки и другие параметры):

<configuration>
  <system.web>
    <roleManager enabled="true" defaultProvider="MyRoleProvider">
      <providers>
        <clear />
        <add name="MyRoleProvider" type="Namespace.To.MyRoleProvider" />
      </providers>
    </roleManager>
  </system.web>
</configuration>

Нет необходимости реализовывать метод ValideUser в MembershipProvider.

0 голосов
/ 21 февраля 2010

У вас должна быть возможность написать поставщика ролей таким образом, чтобы вы переопределяли метод ValidateUser () и заставляли его выполнять поиск AD там. После этого большинство встроенных вещей должно вступить во владение.

...