24.06.2024, 20:46 | #1 |
Участник
|
RunAs для клиентского класса
Добрый день
Есть класс , что выполняется на клиенте. Класс обрабатывает файлы. Для этого используется папка, к которой имеет доступ определенный пользователь. Мне нужно сделать корректирующий данные job, что испольует внутри этот класс. RunAs не работает на клиенте. Можно это как-то программно обойти? Спасибо Ax2009 |
|
25.06.2024, 11:05 | #2 |
Участник
|
Добрый день.
Вы, будучи админом, доступом к папке обладаете? Если нет: А. Запустите Аксапту из под учетной записи пользователя. Б. Или получите доступ к папке и перейдите к следующему алгоритму. Если да: 1. Не пускайте пользователя в систему; 2. В UserInfo замените SID целевого пользователя на свой, а у своего затрите; 3. Запустите джоб; 4. Верните как было. Последний раз редактировалось Товарищ ♂uatr; 25.06.2024 в 11:12. |
|
25.06.2024, 11:50 | #3 |
Участник
|
А Нет пароля для прямого доступа
Б Доступ к папаке только у сервера либо юзеров, у кот доспут дан. |
|
25.06.2024, 12:27 | #4 |
Участник
|
А возможно ли textBuffer передать между клиентом и сервером?
|
|
25.06.2024, 14:55 | #5 |
Участник
|
Как байтовый поток можете трафик "гонять". Обычно для таких целей контейнеры используют (RunBase.dialog и его pack/unpack ярый тому пример).
Можете в БД вставить записи считанные сервером из целевого каталога и клиентом считать. Последний раз редактировалось Товарищ ♂uatr; 25.06.2024 в 15:03. |
|
|
За это сообщение автора поблагодарили: Lankey (1). |
25.06.2024, 18:26 | #6 |
Участник
|
Спасибо! интересный вариант
1) Какое ограничение на размер контейнера в таком случае? 2) TextBuffer почему нельзя использовать? 3) Можно через binData? Или его надо в контейнер упаковывать, а так просто не передать? Вариант с БД,наверное, самый надежный, но немного тяжеловесно получится. Хотелось бы только job-ом обойтись для этой задачи Последний раз редактировалось Lankey; 25.06.2024 в 18:32. |
|
25.06.2024, 20:22 | #7 |
Участник
|
Если доступ у сервера, то в чем проблема выполнить запуск на стороне сервера?
Не сам джоб, разумеется, а класс, который он использует? 1. Не в курсе, в dax2009 уже был статический метод ClassFactory::makeObjectOnServer()? Т.е. просто создать экземпляр класса на стороне сервера 2. Создать класс-посредник с единственным статическим методом с опцией Server внутри которого и запускать нужный класс. И из джоба запускать этот статический метод 3. Если возможно, такой статический метод с опцией Server можно создать на самом целевом классе
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: Товарищ ♂uatr (4). |
25.06.2024, 20:33 | #8 |
Участник
|
1. На ум не приходят какие-либо ограничения при передаче контейнеров между клиентом и сервером, в отличии от строк - их лимит установлен конфигурацией приложения (как клиента, так и сервера по отдельности).
2. Это класс, он создаётся либо на клиенте, либо на сервере, ну будете через RPC на клиенте "дёргать" экземпляр серверного объекта, результат его работы всё равно будет (value) строка, а при больших объемах данных она упирается в п.1. 3. BinData как раз и работает с типом данных "контейнер" и это класс, тоже самое, что и п.2. Только результат его работы - контейнер. https://learn.microsoft.com/en-us/do...ass-and-struct Ощущение, что не теми средствами решаете проблему. Логично просто написать джоб который скопирует целевые файлы от имени сервера в промежуточную папку к которому обладаете доступом. А далее просто запустите корректирующий джоб aka целевой пользователь. |
|