Несколько режимов входа в ASP.NET - необходим совет - PullRequest
4 голосов
/ 15 мая 2009

Ищите несколько советов о том, где взять текущее веб-приложение, которое поддерживает вход в систему на основе активного каталога и использует встроенный компонент входа в asp.

Проблема в том, что мы хотим иметь возможность использовать логин активного каталога или «обычный» логин, используя данные, хранящиеся в нашей локальной базе данных.

Просто чтобы было понятно. В каждой установленной системе это будет одно или другое, поэтому я не спрашиваю, как проверить оба входа в систему.

Основной поток:

Determine which login mode is set
  if active directory
    load active directory login form
    validate login info against active directory
    login to system
  else if normal login
    load default login form
    validate login info against database
    login to system

Мои проблемы с компонентом входа в систему asp могут быть проблемой, но я не уверен, как заставить компонент входа в систему знать, в каком режиме входа выполнять проверку? Форма входа выглядит как черный ящик, что делает меня немного неудобным, когда я использую ее для такой важной задачи.

Можно ли это сделать?

Или ..

Должен ли я просто написать собственный логин для системы и покончить с этим?

Ответы [ 3 ]

3 голосов
/ 15 мая 2009

Контроль входа в систему будет вашим другом в этой ситуации, поскольку он просто использует модель поставщика членства ASP.Net. Вам не нужно будет менять приложение вообще!

Все, что вам нужно сделать, это указать в файле web.config, какой режим аутентификации вы будете использовать. Это, конечно, может быть установлено на машине за машиной. Итак, для ваших активных каталогов машин:

<connectionStrings>
  <add name="ADConnectionString" connectionString="LDAP://testdomain.test.com/CN=Users,DC=testdomain,DC=test,DC=com" />
 </connectionStrings>

<membership defaultProvider="MyADMembershipProvider">
  <providers>
    <add
       name="MyADMembershipProvider"
       type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, 
             Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
       connectionStringName="ADConnectionString"
       connectionUsername="testdomain\administrator" 
       connectionPassword="password"/>
  </providers>
 </membership>

Подробнее о реализации входа в систему с поставщиками членства и активным каталогом можно узнать по адресу http://msdn.microsoft.com/en-us/library/ms998360.aspx.

И затем для ваших компьютеров, которые будут проходить аутентификацию в базе данных, вы просто напишите настраиваемый поставщик членства, который будет проходить аутентификацию в вашей базе данных. Это действительно просто, вам действительно нужно реализовать только один метод. Вы можете начать здесь: http://msdn.microsoft.com/en-us/library/f1kyba5e.aspx. Вот отличный пример, с минимальным количеством кода и простым пошаговым руководством по его настройке: http://www.15seconds.com/issue/050216.htm

0 голосов
/ 15 мая 2009

да и нет.

компоненты LOGIN используют классы поставщика Membership. То, что вам нужно, - это самостоятельно написать версию Active Directory и сказать ASP.Net, чтобы она смотрела на нее для AD или на SQLMembershipProvider, если используется база данных

0 голосов
/ 15 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...