Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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 /delete

 if 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
2-1257617819
Fantnk
2009-11-07 21:16
2009.12.27
Завершение thread Не происходит


2-1257592439
Rydell
2009-11-07 14:13
2009.12.27
Как в DATASET изменить Тип поля, из ftBLOB в ftGraphic, ftMemo, .


15-1256481953
Профессор_младший
2009-10-25 17:45
2009.12.27
Когда перестанут создавать быдло ПО? или глюки Windows 7


2-1257749650
Alex_C
2009-11-09 09:54
2009.12.27
Скрыть кнопку на панели задач


2-1257871099
vtur
2009-11-10 19:38
2009.12.27
Создание приложений с использованием DLL