Поставщик Active Directory - как это сделать? - PullRequest
3 голосов
/ 13 мая 2010

Я работаю над тем, чтобы запустить приложение MVC и запустить его через AD Membership Provider, и у меня возникли некоторые проблемы, чтобы понять это. У меня есть настройка базовой конфигурации, и я работаю, когда я вхожу как foo@my.domain.com + пароль.

   <connectionStrings>
      <add name="MyConnString" connectionString="LDAP://domaincontroller/OU=Product Users,DC=my,DC=domain,DC=com" />
   </connectionStrings>

  <membership defaultProvider="MyProvider">
     <providers>
        <clear />
        <add name="MyProvider" connectionStringName="MyConnString"
             connectionUsername="my.domain.com\service_account"
             connectionPassword="biguglypassword"
             type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
     </providers>
  </membership>

Однако я бы хотел заняться другими вещами, и я не уверен, что делать с ними.

  1. Войдите в систему без ввода домена (т. Е. «@ My.domain.com»). Я понимаю, что это может сработать, только если я ограничу себя только одним доменом - это нормально.
  2. Организуйте пользователей в N разных OU в пределах одной OU. Как вы можете видеть из моей текущей строки подключения, я аутентифицирую пользователей в моем Product Users OU. Я хотел бы создать подразделения для различных компаний в этом подразделении и поместить пользователей в эти подразделения. Как я могу пройти аутентификацию во всех этих разных подразделениях?
  3. Я пытаюсь выяснить, как поставщик членства в Active Directory связан с поставщиками профилей и ролей. Есть ли версии AD для них тоже, или я застрял на SQL, самодельный или нашел что-то, что кто-то еще написал?

Большое спасибо !!

Ответы [ 3 ]

2 голосов
/ 13 мая 2010

В ответ на пункт 3:

Я ответил на похожий вопрос об этом некоторое время назад: "Как я могу реализовать иерархию ролей в приложении asp.net mvc, используя activedirectorymembershipprovider" .

Существует WindowsTokenRoleProvider , который должен предоставить вам подробную информацию о ролях пользователей из AD - это поставщик только для чтения и предоставляет методы только для IsUserInRole и GetRolesForUser, но может быть достаточным для ваших нужд.

1 голос
/ 13 мая 2010

По пункту № 1 я нашел свой ответ. Мне нужно добавить attributeMapUsername="sAMAccountName"

    <add name="MyProvider" connectionStringName="MyConnString"
         attributeMapUsername="sAMAccountName"
         connectionUsername="my.domain.com\service_account"
         connectionPassword="biguglypassword"
         type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
0 голосов
/ 03 февраля 2011

В ответ на пункт 2:

У меня была та же проблема, поэтому я удалил подразделение из строки подключения. Примерно так:

<add name="MyConnString" connectionString="LDAP://domaincontroller/DC=my,DC=domain,DC=com" />

Теперь я могу аутентифицировать пользователей во всех этих разных подразделениях.

...