COM技术内幕,225页.我按照书上对CLIENT.EXE和SERVER.EXE进行配置,为什么在别人的机器上运行client.exe不能启动我机器上的server.exe运行client.exe返回的结果是访问被拒绝,
我知道是权限的问题我该如何在我的机器上设定,从而使别人能通过CoGetClassObject来启动我机器上的组件呢??还有是不是我的机器或者别人的机器没有启动相关的服务??请大侠指教??

解决方案 »

  1.   

    用账号登陆
    a post in yahooCOSERVERINFO si;
    COAUTHINFO ai;
    COAUTHIDENTITY _ai;memset(&si, 0, sizeof(COSERVERINFO));
    memset(&ai, 0, sizeof(COAUTHINFO));
    memset(&_ai, 0, sizeof(COAUTHIDENTITY));
    si.pwszName = L"test_winnt";
    si.pAuthInfo = &ai;ai.dwAuthnSvc = RPC_C_AUTHN_WINNT;
    ai.dwAuthzSvc = RPC_C_AUTHZ_NONE;
    ai.pwszServerPrincName = NULL;
    ai.dwAuthnLevel = RPC_C_AUTHN_LEVEL_CONNECT;
    ai.dwImpersonationLevel = RPC_C_IMP_LEVEL_IMPERSONATE;
    ai.pAuthIdentityData = &_ai;
    ai.dwCapabilities = RPC_C_QOS_CAPABILITIES_DEFAULT;_ai.User = L"test";
    _ai.UserLength = wcslen(_ai.User);
    _ai.Domain = L"test";
    _ai.DomainLength = wcslen(_ai.Domain);
    _ai.Password = L"test";
    _ai.PasswordLength = wcslen(_ai.Password);
    _ai.Flags = SEC_WINNT_AUTH_IDENTITY_UNICODE;MULTI_QI qi[] = { {&IID_IUnknown} };hr = ::CoCreateInstanceEx(CLSID_MyClass, NULL, CLSCTX_REMOTE_SERVER, &si, 1,
    qi);