|
![]() |
#1 |
Участник
|
Продолжаем тему доступа пользователей,находящихся вне домена в DAX 4.0
Способ от Vladislav Первый: прописываем прямо в БД в SysBCProxyUserAccount запись с SID того пользователя, который заведен на сервере. А вот в UserInfo прописываем SID, под которым этот пользователь заведен на клиенте НЕ РАБОТЕТ. Может за последнее аремя возникли новые идеи? |
|
![]() |
#2 |
Участник
|
Идеи-то есть уже давно, вот времени их воплотить не хватает... А идея простая: как было выяснено, проблема с подключением возникает из-за того, что AOS получает информацию о SID'е пользователя для сопоставления его с тем или иным пользователем Axapta не из характеристик RPC-подключения (при том, что там используется аутентификация и обеспечение целостности данных), а непосредственно от клиента Axapta. Последний для этого получает SecurityToken своего основного потока, для этого SecurityToken запрашивает SID, проверяет его с помощью функции IsValidSid() из kernel32.dll и (та-да!) преобразует в строковый формат с помощью функции ConvertSidToStringSidW() все из той же kernel32.dll, после чего посылает его в таком виде AOS'у.
При этом клиент Аксапты еще для каких-то надобностей грузит ntdsapi.dll и version.dll. Примечательны они тем, что из них импортируется всего лишь 1 и 3 функции, соответственно. Теперь зачем эта информация нужна... В общем, идея видится такая:
Последний раз редактировалось gl00mie; 01.04.2008 в 13:01. Причина: уточнение |
|
![]() |
#3 |
Участник
|
Ну раз там такая "дыра", то может провести редактирование файла сервера не как взлом ПО (что является нарушением п 4.4 правил форума "...Запрещено любое обсуждение взлома, обхода защиты любого программного обеспечения..."), а как "исправление ошибки" в безопасности? ;-)
Т.е. "подправить" файл, чтобы он брал не SID, присланный бог весть откуда, а SID аккаунта, который выполняется на сервере. |
|
Теги |
active directory, доступ, ax4.0 |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|