Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Вниз

ошибка "Отказано в доступе" при вызове CreateOleObject( xxx )   Найти похожие ветки 

 
Fedor   (2005-05-19 11:18) [0]

У меня такая ситуация:
Я написал несколько програм, которые используют OLE.
Создавал OLE я при помощи CreateOleObject("xxx")

Потом захотелось мне переписать несколько приложений на сервис.
Все делал анологично, но при вызове CreateOleObject("xxx") возникала ошибка "Не был произведен вызов CoInitialize".
Я вызываю сначало CoInitialize, а потом CreateOleObject("xxx").
Возникает другая ошибка "Отказано в доступе".
Пробовал делать CreateOleObject("Excel.Application") - все работает. А мой "xxx" не работает. Я понял, что это из-за сети ("xxx" находится удалённо на другой машине).
Запускаю свой сервис под экаунтом админа и всё работает!!!
Но мне не нравится, что я в своём сервисе привязываюсь к паролю админа(при замене пароля неохота менять его и на сервисе).
Сервис зароботал, но возникло куча других проблем.
Теперь другие программы которые используют OLE (CreateOleObject("xxx")) выдают ошибку "Отказано в доступе".
Если запускать прграмму с другой машины (не на той, на которой установлен сервис), то прога работает нормально.

Слышал надо покапаться в утилите "dcomcnfg", но не могу разобраться, что в ней менять.


 
-=XP=- ©   (2005-05-19 12:00) [1]

Я понял, что это из-за сети ("xxx" находится удалённо на другой машине). Запускаю свой сервис под экаунтом админа и всё работает!!! Но мне не нравится, что я в своём сервисе привязываюсь к паролю админа

Удалить пароль админа - и всех делов!
Заодно это понравится всяким разным хакерам - запускай сервис на любой удаленной машине!
Лепота! :)

P.S. Для решения таких вопросов существует понятие "домен".


 
Shaman_Naydak;   (2005-05-19 18:23) [2]

В dcomcbfg находишь свой класс и даешь права на запуск и на доступ... вот.. в домене ясен пень все проще ибо список пользователей один..
как другой варинт ты можешь в своем классе указать какую безопасность тебе итреба
например
CoInitializeSecurity(@Class_, -1, nil, nil, 0, 0, nil, 8, nil);
заходи бери кто хошь
пишу по памяти могу и соврать


 
Fedor   (2005-06-03 15:50) [3]

Утилитку dcomcnfg я запускаю на той машине к которой я коннекчус (поидее она меня не пускает). Или я ошибаюсь?
В утилитке dcomcnfg я не нашёл своё приложение, в безопастность по умолчанию добавил везде SYSTEM, в свойствах по умолчанию сделал:
Уровень проверки подленности = НЕТ
Уровень олицетворения = аноним

Раскажи где ты видел такую ф-ю
CoInitializeSecurity(@Class_, -1, nil, nil, 0, 0, nil, 8, nil);
Я её не нашёл ни в хелпе Делфи, ни в WinSDK.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.043 c
3-1119472246
серго
2005-06-23 00:30
2005.07.31
не получается работать с компонентом DBMemo


8-1111995656
DimKa
2005-03-28 11:40
2005.07.31
Методы интерполяции


1-1121225231
AZ
2005-07-13 07:27
2005.07.31
TThread. Можно ли внутри процедуры Execute делать Suspend?


14-1121076095
WondeRu
2005-07-11 14:01
2005.07.31
Вакансия: Программист (С++) как творец безопасности.


4-1117688968
Strech
2005-06-02 09:09
2005.07.31
Модальные окна





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский