Пользовательский поставщик ролей с аутентификацией ActiveDirectory

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


person Narazana    schedule 21.02.2010    source источник


Ответы (2)


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

В какой-то момент я подумал, что мне также нужно реализовать MembershipProvider, но простое добавление к web.config исправило его (поскольку сборка не находится в GAC, в атрибуте type вам нужно только указать пространство имен + 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.

person doekman    schedule 22.08.2011

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

person Joel Etherton    schedule 21.02.2010