Client(assume that name: Clinet)
DCOM server(name: DCOM)
COM+ server(name: COM+) 如果Clinet程序放在DCOM上,CALL LOCAL的DCOM Components,DCOM Components再调用dll call COM+ server上的COM+ components, 是很成功的 但是Client程序放在Client端,CALL DCOM上的DCOM Components,透过它再CALL COM+
SERVER上的COM+ Component,出现"permission denyied" 错误!! DCOM,CLIENT都用的是一个域账号admin,在三台机上都是administrator! 看COM+ SERVER的Security Events,发现client程序如果在DCOM上,是admin的帐号log on,但是一放到Client,发觉变成anonymous了!!! 在Client端也用的是域帐号admin登的录!!
请专家帮帮我!!!
DCOM server(name: DCOM)
COM+ server(name: COM+) 如果Clinet程序放在DCOM上,CALL LOCAL的DCOM Components,DCOM Components再调用dll call COM+ server上的COM+ components, 是很成功的 但是Client程序放在Client端,CALL DCOM上的DCOM Components,透过它再CALL COM+
SERVER上的COM+ Component,出现"permission denyied" 错误!! DCOM,CLIENT都用的是一个域账号admin,在三台机上都是administrator! 看COM+ SERVER的Security Events,发现client程序如果在DCOM上,是admin的帐号log on,但是一放到Client,发觉变成anonymous了!!! 在Client端也用的是域帐号admin登的录!!
请专家帮帮我!!!
ZeroMemory(&mqi,sizeof(mqi));
mqi[0].pIID =&IID_IRemoter;
mqi[0].hr = 0;
mqi[0].pItf = NULL;
COSERVERINFO csi;
ZeroMemory(&csi,sizeof(csi));
COAUTHIDENTITY _authid;
ZeroMemory(&_authid,sizeof(COAUTHIDENTITY));
_authid.Domain=L"testway";
_authid.DomainLength=7;
_authid.Password=L"";
_authid.PasswordLength=0;
_authid.User=L"administrator";
_authid.UserLength=13;
_authid.Flags=SEC_WINNT_AUTH_IDENTITY_UNICODE;
COAUTHINFO _authinfo;
ZeroMemory(&_authinfo,sizeof(COAUTHINFO));
_authinfo.dwAuthnSvc = RPC_C_AUTHN_NONE;//;RPC_C_AUTHN_WINNT
_authinfo.dwAuthzSvc = RPC_C_AUTHZ_NONE;
_authinfo.pwszServerPrincName = NULL;
_authinfo.dwAuthnLevel = RPC_C_AUTHN_LEVEL_NONE;
_authinfo.dwImpersonationLevel = RPC_C_IMP_LEVEL_IMPERSONATE;
_authinfo.pAuthIdentityData = &_authid;
_authinfo.dwCapabilities = EOAC_NONE;
csi.pAuthInfo=&_authinfo;