|
|
|
VBA - авторизация пользователя
|
|||
|---|---|---|---|
|
#18+
Пишу макрос для Excel, который посредством ADO получает данные запроса из БД Access, находящейся в сетевой папке. Для входа в неё необходима авторизация; хочу спросить совета, как грамотно это реализовать – по двум вариантам: 1. Как заранее проверить, что с начала Windows-сессии в эту папку не было входа (т.е. пароль не кэширован), чтобы корректно вызвать стандартное окно запроса логина/пароля, дождаться их ввода пользователем, а потом автоматически продолжить выполнение макроса? 2. Как правильно прописать в коде макроса логин/пароль (хотя это и небезопасно…), чтобы процесс авторизации проходил "прозрачно"? Можно как-нибудь зашифровать сам текст кода (а не модуль), по аналогии с VBS? И вообще, подкиньте пожалуйста ссылок на решение вопросов, связанных с подобной авторизацией (можно по англ.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 22:58:40 |
|
||
|
VBA - авторизация пользователя
|
|||
|---|---|---|---|
|
#18+
LeCrunch1. Как заранее проверить, что с начала Windows-сессии в эту папку не было входа (т.е. пароль не кэширован), чтобы корректно вызвать стандартное окно запроса логина/пароля, дождаться их ввода пользователем, а потом автоматически продолжить выполнение макроса?ээээ.... а зачем? Читай пункт два: LeCrunch2. Как правильно прописать в коде макроса логин/пароль (хотя это и небезопасно…), чтобы процесс авторизации проходил "прозрачно"?В строке коннекта, при помощи специальных ключевых слов UID & PWD. Код: plaintext 1. LeCrunchМожно как-нибудь зашифровать сам текст кода (а не модуль), по аналогии с VBS?Обфускацию? Да можно, копируешь текст модуля во внешний файл, отдаешь его обфускатору, потом результат копируешь обратно в модуль. Ну и можно закрыть сам VBProject на пароль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2007, 01:28:43 |
|
||
|
VBA - авторизация пользователя
|
|||
|---|---|---|---|
|
#18+
White Owlээээ.... а зачем? Первый мой вопрос - как авторизоватся вручную, не прописывая нигде пароля (для соблюдения безопасности). Т.е. интересует как именно вызвать стандартное окно запроса логина/пароля, дождаться их ввода пользователем, а потом автоматически продолжить выполнение макроса. White OwlОбфускацию? Да можно, копируешь текст модуля во внешний файл, отдаешь его обфускатору, потом результат копируешь обратно в модуль. Что это такое?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2007, 07:26:50 |
|
||
|
VBA - авторизация пользователя
|
|||
|---|---|---|---|
|
#18+
LeCrunch White Owlээээ.... а зачем? Первый мой вопрос - как авторизоватся вручную, не прописывая нигде пароля (для соблюдения безопасности). Т.е. интересует как именно вызвать стандартное окно запроса логина/пароля, дождаться их ввода пользователем, а потом автоматически продолжить выполнение макроса.Не существует такой вещи как "стандартное окно запроса логина/пароля". Ты сам рисуешь это окно, либо позволяешь драйверу подключения показывать его окно, если у драйвера есть такая функциональность. Ты не можешь попросить Акцесс показать его встроенное окно логина подключаясь через ADO. ADO это сетевой и только сетевой интерфейс доступа к базе данных. Даже если твои Экселевская книга и Акцессовская база лежат вот прямо здесь на компе юзера - при подключении через ADO Эксель задействует сеть. А Акцесс у тебя работает как сервер базы данных, он не имеет доступа к экрану клиентского компьютера. LeCrunch White OwlОбфускацию? Да можно, копируешь текст модуля во внешний файл, отдаешь его обфускатору, потом результат копируешь обратно в модуль. Что это такое?)Обфускация? Приведение текста программы в нечитабельный вид. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2007, 22:23:29 |
|
||
|
VBA - авторизация пользователя
|
|||
|---|---|---|---|
|
#18+
А посоветуйте, как проверить доступность источника данных; т.е. нужно организовать проверку - если сеть недоступна, или ведется автономная работа на ноутбуке, то в этом случае данные брать из локальной копии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2007, 09:50:04 |
|
||
|
VBA - авторизация пользователя
|
|||
|---|---|---|---|
|
#18+
LeCrunchА посоветуйте, как проверить доступность источника данных; т.е. нужно организовать проверку - если сеть недоступна, или ведется автономная работа на ноутбуке, то в этом случае данные брать из локальной копии.Опять не с того конца к задаче подходишь.... Можно конечно попытатся найти сервер по сети, на одном хосте, на другом... Получишь во первых стабильную задержку на стартапе, но это очень раздражает юзеров. А во вторых, изменения которые юзер наделал в локальной базе "магически исчезнут" в ближайший сеанс работы с сетевой базой. Если юзер может в принципе работать в локальном режиме - пусть он всегда работает с локальной копией базы. А когда у него появился коннект с сервером - локальная база должна синхронизироваться с большой. Этот процесс называется синхронизацией баз или репликацией данных. Кажется в Акцессе есть встроенные средства для этого. Ну а если не найдешь - переходи на более серьезные базы данных :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2007, 04:26:05 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=34445571&tid=2183169]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
94ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 423ms |

| 0 / 0 |
