Здравствуйте Konstantin Sokolovskiy, Вы писали:
KS>Сервису нужны результаты компиляции этого файла
Стало ясней...
KS>Мы добавили AppID для этого инпроса в .rgs-файле, чтобы управлять им в DCOMCNFG
Это глупость. AppID не связан c CLSID! AppID — это гуид exe-шника! Т.е. CLSID может быть асоцеирован с AppID только если CoClass реализован внутри exe-шника.
KS>На файл, который нужно скомпилировать
По умолчанию (без имперсонации) права будут проверяться от имени сервера (т.е. от System).
KS>>> Мы на клиенте делаем имперсонацию, но они до сервера не доходят, поэтому компиляция файла не проходит — access denied.
Совершенно верно. Так как COM делает вызов под экаунтом exe-шника (клиентского).
KS>Права доступа имперсонируемого пользователя
А откуда берется этот "имперсонированный пользователь". Клиент, что, является промежуточным сервером?
VD>>Для клоакинга нужно иметь и на клиенте и на сервере W2k. Клоакинга же тебе без надобности, нужно просто сделать имперсонацию на сервере.
KS>Как? Мы пыталисью, но инпрос на сервере запускается с правами анонимного пользователя и не имеет права на имперсонацию
Что?! В COM-е не бывает анонимного пользователя. Впрочем как и в NT. В COM можно установить уровень имперсонации анонимус. Может ты об этом?
KS>>>Что нужно предпринять, чтобы сервер получил доступ к файлу.
VD>>Для начала нужно определиться с тем, что конкретно нужно? Почему клиент не может просто вызывать метод сервера, а тот просто компилировать нужный файл?
KS>Наш сервис работает под системным аккаунтом, поэтому некоторые операции, которые требуют некоторых дополнительных привилегий, мы выполняем под специальным аккаунтом (имперсонируемся).
Как он получается? С помощью LogonUser?
Компиляция проходит под имперсонацией?
Ясно что вы там что-то недопонимаете. Но вот ваша схема не очень понята. Можно еще раз... Но подробно и без пропусков обрисовать задачу и то как вы ее пытаетесь решить. Например:
У нас есть удаленный компилятор. Он получает запрос от пользователя такго-то (экаунт, его домен/компьютер, права). Сервер (экаунт, его домен/компьютер, права, тип запуска, и д.р. настройки из dcomcnfg.exe) открывает файл...
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.