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登的录!! 
请专家帮帮我!!! 

解决方案 »

  1.   

    DCOM Components call com+的时候指定用户admin.pass就可以了。
      

  2.   

    MULTI_QI   mqi[1];   
              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;   
      

  3.   

    抱歉,这部分代码是在create COM+ connection时写的吗?