DCOM удаленно: E_ACCESSDENIED
От: xrc2  
Дата: 19.08.08 10:03
Оценка:
WinXp Sp2 (Client & Server)

Есть простой сервер и клиент. На одной к.н. машине через локалхост работает отлично!
Но удаленно клиент не может законектиться к серверу — выходит ошибка E_ACCESSDENIED.
Нашел множество статей для устранения ошибки доступа к DCOM — но ничего не помогает!
Менял права для всех ATL серверов и для моего ATL сервера через dcomcnfg — давал всем полный доступ. Ничего не помогает.

Подключаюсь к серверу анонимно.
Собственная политика безопастности для приложения стоит как на сервере так и на клиенте:
CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_NONE, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, NULL);




Подключаюсь так:

COSERVERINFO serverInfo;
    ZeroMemory(&serverInfo, sizeof(COSERVERINFO));

    COAUTHINFO athn;
    ZeroMemory(&athn, sizeof(COAUTHINFO));

    // Set up the NULL security information
    athn.dwAuthnLevel = RPC_C_AUTHN_LEVEL_NONE;
    athn.dwAuthnSvc = RPC_C_AUTHN_WINNT;
    athn.dwAuthzSvc = RPC_C_AUTHZ_NONE;
    athn.dwCapabilities = EOAC_NONE;
    athn.dwImpersonationLevel = RPC_C_IMP_LEVEL_IMPERSONATE;
    athn.pAuthIdentityData = NULL;
    athn.pwszServerPrincName = NULL;

    serverInfo.pwszName = L"\\\\PC_NAME";
    serverInfo.pAuthInfo = &athn;
    serverInfo.dwReserved1 = 0;
    serverInfo.dwReserved2 = 0;

        MULTI_QI qi = {&IID_IHelloWorld, NULL, S_OK};

        HRESULT hResult = CoCreateInstanceEx(CLSID_HelloWorld, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER, &serverInfo, 1, &qi);



На сервер категорически не пускает! Почему? как можно определить в чем проблема?
Re: DCOM удаленно: E_ACCESSDENIED
От: bugs_2005 Россия  
Дата: 22.08.08 01:17
Оценка:
Здравствуйте, xrc2, Вы писали:

X>WinXp Sp2 (Client & Server)


X>На сервер категорически не пускает! Почему? как можно определить в чем проблема?


Машине в домене или в рабочей группе? Сервер и клиент под какими аккаунтами работают?
Re: DCOM удаленно: E_ACCESSDENIED
От: SergeyL Россия  
Дата: 22.08.08 11:06
Оценка:
Здравствуйте, xrc2, Вы писали:

X>...


Если не трудно, какие именно настройки на сервере в dcomcnfg->Мой Компьютер (Свойства по умолчанию, Безопасность COM).
Может, все-таки забыли чего...

Кстати, какие там установлены средства безопасности, файрволы итп?
Re[2]: DCOM удаленно: E_ACCESSDENIED
От: xrc2  
Дата: 23.08.08 09:36
Оценка:
Здравствуйте, bugs_2005, Вы писали:

_>Здравствуйте, xrc2, Вы писали:


X>>WinXp Sp2 (Client & Server)


X>>На сервер категорически не пускает! Почему? как можно определить в чем проблема?


_>Машине в домене или в рабочей группе? Сервер и клиент под какими аккаунтами работают?


Машины в рабочей группе!
На двух машинах создал двух идентичных пользователей — с правами пользователя (пробывал и с админскими правами). На сервере создал еще одного с правами админа, который нужен для запуска приложения. Для этих целей на реальной машине создал 4 VMWare машины с WinXP (2 — SP1 и 2 — SP2) — для тестирования, на случай если я уже запорол конфиги на рабочей машине. В случае с SP1 почти даже ничего настраивать не нужно — все работает на ура. Также работает когда сервер стоит на SP1 а клиент где угодно — т.е. на сколько я понимаю в этом случае с сетью и группой все окей. Остается только одно настройка доступа на серверной стороне! Мне в принцыпе все равно под учетной записью заходить или под анонимным пользователем и то и другое меня устраивает!
Re[3]: DCOM удаленно: E_ACCESSDENIED
От: Yuske  
Дата: 23.08.08 16:12
Оценка:
Здравствуйте, xrc2, Вы писали:

X>Машины в рабочей группе!

X>На двух машинах создал двух идентичных пользователей — с правами пользователя (пробывал и с админскими правами). На сервере создал еще одного с правами админа, который нужен для запуска приложения. Для этих целей на реальной машине создал 4 VMWare машины с WinXP (2 — SP1 и 2 — SP2) — для тестирования, на случай если я уже запорол конфиги на рабочей машине. В случае с SP1 почти даже ничего настраивать не нужно — все работает на ура. Также работает когда сервер стоит на SP1 а клиент где угодно — т.е. на сколько я понимаю в этом случае с сетью и группой все окей. Остается только одно настройка доступа на серверной стороне! Мне в принцыпе все равно под учетной записью заходить или под анонимным пользователем и то и другое меня устраивает!

Если включен файрвол, то отключи его или добавь разрешения для DCOM.
Пользователей ты создавал с пустыми паролями или нет? Если с пустыми, то отключи локальную политику безопасности "Учетные записи: ограничить использование пустых паролей для консольного входа".
Что бы пользователь удоставерялся на сервере под тем же именем, а не как гость, установи параметр локальной политики безопасности "Сетевой доступ: модель совмесного доступа и безопасности для локальных учетных записей" в состояние "Обычная".
Проверь после этого запускается ли COM сервер удаленно. Если нет включи аудит событий на вход в систему и проверь логинится ли удаленный пользователь под тем же именнем или нет (может все еще логинется как гость).
Если COM сервер запускается, но к нему нет доступа проверь настройки в dcomcnfg "Свойства" сервера -> "Безопасность" -> "Права доступа".

Удачи!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.