描述:
我原来两台机子有一样的用户名密码,
调用DCOM成功,(但两台机子若用户名不一样,则访问不了)
现在我想把它改成不同的用户名,
各位大哥,帮帮忙!!!
下面是我调用的代码,要怎样改呢?????????
HRESULT hr;
hr = CoInitialize(NULL);
hr = CoInitializeSecurity(
NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT,
RPC_C_IMP_LEVEL_IDENTIFY, NULL, 0, NULL
);
COSERVERINFO ServerInfo={0,L"zsc",NULL,0};
MULTI_QI MultiQi={&IID_IUnknown,NULL,NOERROR};
hr=CoCreateInstanceEx(CLSID_pp2,NULL,CLSCTX_REMOTE_SERVER,&ServerInfo,1,&MultiQi);
Ipp2 *ps1;
IUnknown *pUnknown = (IUnknown *) MultiQi.pItf;
hr = pUnknown->QueryInterface(IID_Ipp2,(void**)&ps1);
ps1->f(t);
pUnknown->Release();
解决方案1:
在windows NT/windows 200下,一个远程用户要访问你的com对象首先是要保证他们必须在你的机器上有账号,而且这个账号必须和他们登陆他们自己系统的账号一致。eg:有一个用户登陆他们自己的机器的用户ID是“wang”,密码是“123456”,那么你的系统中也应该有这样一个账号,用户ID和密码完全相同。这是因为当com在你的系统中创建一个对象时,他首先会自动作为一个独立的用户登录你的系统。