Как мне смешать Integrated Security и собственную базу данных с IIS / C # 3.5? - PullRequest
1 голос
/ 11 декабря 2008

Можно ли смешать все эти элементы управления доступом на одном сайте?

У меня есть требование сказать

  • а) Пользователи из AD должны быть разрешены доступ с использованием встроенной защиты
  • б) Пользователи из других AD должны быть разрешенный доступ; потенциально вход в систему
  • в) Пользователи не в AD должен быть в состоянии создать новый аккаунт на сайте.

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

Каков наилучший способ достичь этого?

Ответы [ 2 ]

1 голос
/ 12 декабря 2008

Некоторое время назад я делал что-то подобное в проекте, и он работал так:

Я настроил приложение на использование проверки подлинности с помощью анонимного доступа в IIS.

Я создал стандартную страницу входа для проверки подлинности с помощью форм, которая принимала идентификатор пользователя и пароль для выполнения неинтегрированных входов в систему.

Я также создал специальную страницу .aspx для входа в систему с интегрированной безопасностью и установил ТОЛЬКО эту страницу для использования интегрированной безопасности (а не анонимного доступа) в IIS. На этой странице вручную создан билет проверки подлинности с помощью форм на основе учетных данных IIS.

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

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

0 голосов
/ 12 декабря 2008

Я думаю, что есть ответ от самого человека . В основном вы должны использовать обычную модель провайдера членства asp.net. Но создайте свой собственный провайдер, который обернет активный каталог и провайдера sql. Возможно два разных провайдера активных каталогов.

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