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);
На сервер категорически не пускает! Почему? как можно определить в чем проблема?