Аутентификация LDAP с использованием VBA в MS Access - PullRequest
0 голосов
/ 31 августа 2011

Я создаю проект Access, связанный с SQL Server.Вместо того, чтобы использовать аутентификацию Windows для SQL Server, я хочу использовать имя пользователя / пароль, специфичные для приложения, и сам аутентифицировать пользователей, используя форму входа в систему.Причина в том, что другие приложения могут подключаться к этой базе данных из контекста, где аутентификация Windows не является опцией (например, FileMaker Server).

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

Итак, я хочу сделать следующее:

  1. Запросить у пользователя имя пользователя ипароль, когда они открывают базу данных.
  2. Используйте это имя пользователя и пароль для аутентификации их на нашем сервере LDAP.
  3. Продолжите, если он пройдет, потерпите неудачу, если это не так.

Может кто-нибудь набросать, как это работает, или указать мне ресурс, который описывает это?

1 Ответ

1 голос
/ 01 сентября 2011

Один из способов сделать это - создать процедуру VBA, которая перебирает все ваши связанные таблицы и изменяет строку подключения, чтобы встроить имя пользователя и пароль из формы входа в систему.

Вы можете получить синтаксис для существующих связанных таблиц ODBC, зайдя в окно отладки и введя:

? CurrentDb().TableDefs("My Table Name").Connect

Что должно дать вам что-то похожее на:

ODBC; DRIVER = SQL Server; SERVER = MYSQLSERVER001; UID = JPARKER; PWD = Pizza123; APP = 2007 Система Microsoft Office; DATABASE = MyDatabaseName

Таким образом, ваша форма входа в систему будет собирать имя пользователя и пароль от пользователя, затем сохранять их как переменные и использовать для создания новой строки подключения. Затем переберите коллекцию tabledefs, обновив свойство connect. Происходит довольно быстро.

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