ActiveDirectoryMembershipProvider и ссылочная целостность

0

В прошлом, когда я реализовал свои собственные механизмы аутентификации, у меня была бы таблица пользователей с отношениями к другим таблицам в моей базе данных MySQL приложения. Однако теперь, когда я рассматриваю использование ActiveDirectoryMembershipProvider, я не вижу возможности создавать похожие отношения между пользователями AD и этими таблицами.

Каков нормальный способ решения этой проблемы? Должен ли я просто принять тот факт, что кто-то может вставить записи с идентификаторами пользователей, которые не соответствуют существующим пользователям? Я реально не ожидаю, что это произойдет, но я привык к обеспечению целостности на уровне базы данных.

Теги:
active-directory
referential-integrity
asp.net-membership

2 ответа

0
Лучший ответ

Я думаю, вам придется отказаться от ссылочной целостности базы данных в этом случае. Просто добавьте в свой код код своего приложения для существования учетной записи Active Directory.

В теории, какой-то пользователь может пойти вручную и ввести инструкцию SQL INSERT, которая ссылается на недопустимую учетную запись AD. Но на практике, надеюсь, вы не даете кучу пользователей прямого доступа к таблице. Если код приложения является единственным, доступным для БД, код приложения проверяет учетную запись перед вставкой строки, и этот код проверки проверяется, тогда вы должны быть в порядке.

Чтобы быть в безопасности, у вас может быть ночной пакетный процесс, который проверяет все строки в таблице ссылок на Active Directory. Если он обнаружит какую-либо несогласованность, он может отправить вам электронное письмо. Это не будет препятствовать нарушениям целостности, но, по крайней мере, это позволит вам узнать о них.

0

Я вообще не знаю, что вы могли бы сделать это через MySQL. Если вы используете SQL-сервер, вы можете написать триггер, который будет вызывать С# dll, который будет проверять, что они являются членами AD. Тогда, если бы они не были, вы могли бы заблокировать вставку в БД. Вы могли бы сделать что-то подобное с MySQL, но мои знания о MySQL довольно тонкие.

  • 0
    Интересная идея. Вероятно, несколько излишним для моего сценария, хотя. Мне в основном интересно, что другие люди, которые используют ActiveDirectoryMembershipProvider, делают с этим, если что-нибудь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню