Текущий архив: 2009.12.27;
Скачать: CL | DM;
Вниз
сервис + приложение (обмен данными) Найти похожие ветки
← →
VirEx(home) (2009-11-01 10:18) [40]
> Eugene999 (23.10.09 15:53) [38]
спасибо, давно уже сделал по своему :)
теперь установка/запуск/остановка/удаление сервиса проще всего:
PService /create /start
PService /stop /deleteif FindSwitch("STOP") then _ControlService(sStop ,ServerName);
if FindSwitch("DELETE")then begin
PSvc.AfterUninstall(nil);
_ControlService(sDelete,ServerName);
end;
if FindSwitch("CREATE")then begin
_ControlService(sCreate,ServerName,ParamStr(0));
PSvc.AfterInstall(nil);
end;
if FindSwitch("START") then _ControlService(sStart ,ServerName);
Application.Run;
> Dennis I. Komarov © (23.10.09 16:00) [39]
я тоже за http интерфейс, но в этом совершенно не разбираюсь
надо учить
← →
VirEx(home) (2009-11-01 10:31) [41]сервис работает от привилегий системы (системная учетная запись), запускает отдельный поток, в котором выполняются команды пользователя (запуск программы, сохранение в файл и т.п.)
как сделать чтобы поток "переключался" на работу от пользовательских прав, в том числе и от прав работающего в системе пользователя
реализация в потоке что-то типа команды:
ShitchToUserRight("User1","passw");
showmessage();
ShitchToSystemRight;
← →
sniknik © (2009-11-01 10:35) [42]> http + xml
> За HTTP +1
за http/или https, но - xml.
сам делаю сейчас примерно тоже самое (правда у меня выбора практически не было, т.к. одно из требований возможность работы клиента с сервером через интернет, а что еще в интернете гарантированно работает?...).
а xml попросту лишний, гораздо проще обмениваться "чистыми" рекордсетами, т.е. на сервере делаешь копитострим, на клиенте редфромстрим, и готово работаеш с данными, без дополнительных преобразований. (а ну да, это для ADO, у других может не быть возможности сохранять рекордсет куда бы то ни было, и тогда преобразования неизбежны... тогда неважно, можно и xml, хотя сам бы выбрал json)
← →
Юрий Зотов © (2009-11-01 11:26) [43]> VirEx(home) (01.11.09 10:31) [41]
Подобную задачу делал так:
1. Все работает через сокеты.
2. Сервис слушает порт.
3. Клиент коннектится на этот порт.
4. Сервис порождает поток, обслуживающий клиента и снова слушает порт.
5. Клиент передает потоку логин и пароль.
6. Поток коннектится к БД от имени (и с правами) клиента.
7. Клиент и поток обмениваются данными по установленному протоколу, при этом поток работает с БД.
8. Клиент отконнектился - поток умирает.
← →
VirEx(home) (2009-11-01 15:32) [44]
> Юрий Зотов © (01.11.09 11:26) [43]
тоже самое делается через пайпы
но мне нужен пароль и пользователь не для базы, а немного другое
чтобы сам поток мог выполнять задачи от учетной записи в системе
← →
VirEx(home) (2009-11-01 15:45) [45]
> чтобы сам поток мог выполнять задачи от учетной записи в
> системе
имеется ввиду от любой учетной записи в системе, какую пожелаешь
← →
Юрий Зотов © (2009-11-01 16:10) [46]> VirEx(home) (01.11.09 15:32) [44]
> чтобы сам поток мог выполнять задачи от учетной записи в системе
Не думаю, что такое возможно. Поток живет внутри процесса, а процесс запущен от имени какого-то юзера - весь.
Но можно вместо потока (или ИЗ потока) порождать процесс - CreateProcessAsUser, CreateProcessWithLogonW.
← →
VirEx(home) (2009-11-01 16:16) [47]
> [46] Юрий Зотов © (01.11.09 16:10)
сервис работает от прав которые выше чем у администратора, разве нет функционала API позволяющего менять права потоку на пониженные (администратор, гость и т.п.)?
← →
Loginov Dmitry © (2009-11-01 21:49) [48]> разве нет функционала API позволяющего менять права потоку
> на пониженные (администратор, гость и т.п.)?
права закрепляются за приложением при его запуске. Эти же права действуют
для каждого из потоков. Врядли в API предусмотрено изменение прав для
определенных потоков. Имхо, только [46].
← →
DVM © (2009-11-01 21:53) [49]
> разве нет функционала API позволяющего менять права потоку
> на пониженные (администратор, гость и т.п.)?
Уже запущенному насколько я знаю нет.
← →
brother © (2009-11-02 05:08) [50]> выше чем у администратора
это system что-ли?
← →
VirEx(home) (2009-11-02 12:50) [51]
> [50] brother © (02.11.09 05:08)
> > выше чем у администратора
>
> это system что-ли?
насколько я знаю, да
← →
Медвежонок Пятачок © (2009-11-02 12:54) [52]сервис работает от прав которые выше чем у администратора, разве нет функционала API позволяющего менять права потоку на пониженные (администратор, гость и т.п.)?
что мешает сразу запустить из под нужной учетки имеющей нужные права?
← →
VirEx(home) (2009-11-02 13:08) [53]
> [52] Медвежонок Пятачок © (02.11.09 12:54)
> что мешает сразу запустить из под нужной учетки имеющей
> нужные права?
сервис выполняет скрипты
необходимо чтобы скрипт мог "переключатся" на учетку администратора например, чтобы засветить диалоговое окно
см [41], там пример команд в скрипте
← →
Anatoly Podgoretsky © (2009-11-02 13:13) [54]Impersonate
← →
Медвежонок Пятачок © (2009-11-02 14:20) [55]мда. странный сервис.
← →
VirEx(home) (2009-11-05 11:00) [56]
> [55] Медвежонок Пятачок © (02.11.09 14:20)
> мда. странный сервис.
ничего странного
сервис автоматизирующий какие-либо действия записанные в скрипте, притом действия могут выполнятся вне зависимости от того есть ли в системе пользователь
← →
Dennis I. Komarov © (2009-11-05 12:32) [57]
> я тоже за http интерфейс, но в этом совершенно не разбираюсь
> надо учить
это наименьшее из того, что придется учить
> сервис автоматизирующий какие-либо действия записанные в
> скрипте, притом действия могут выполнятся вне зависимости
> от того есть ли в системе пользователь
Сервис не сможет интерпритировать твои скрипты из под разных учеток. Тебе нужен интерпритатор, который будет запускатся сервиром под определенной учеткой и выполнять уже определенный скрипт...
А вообще, больно нехорошо все это пахнет...
← →
VirEx(home) (2009-11-06 11:05) [58]
> [57] Dennis I. Komarov © (05.11.09 12:32)
> А вообще, больно нехорошо все это пахнет...
это диплом :)
← →
Медвежонок Пятачок © (2009-11-06 14:19) [59]ничего странного
сервис должен работать автономно.
максимум что можно - реагировать на запросы интерактивного юзера.
но вываливать диалоговые окна по своей инициативе - никогда.
← →
Dennis I. Komarov © (2009-11-06 14:25) [60]
> но вываливать диалоговые окна
"А хвостатым документов вообще не положено" (С)
Страницы: 1 2 вся ветка
Текущий архив: 2009.12.27;
Скачать: CL | DM;
Память: 0.58 MB
Время: 0.017 c