• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > DCOM跨域调用的问题?

DCOM跨域调用的问题?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了dcom是什么,9955dcom最近十天更新,8844dcom更新后地址,dcom配置,9955dcom首页等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: DCOM跨域调用的问题?
描述:

不好意思,问大家一个关于跨域调用DCOM的问题,情况是这个样子的
我在服务器A(域[domain_A]) 存在用户test,口令test ,A上有 DCOM组件aCOM(Exe) 使用dcomcnfg
配置了他的启动,调用权限.
在另一台计算机上(属于另一个域,于domain_A不信任)使用CoCreateInstanceEx调用
这个dcom,但是不成功,希望高手指点一下.
具体的aCom
class id 为 CLSID_Test
存在一个接口 ITest ,id为 IID_ITest
有一个方法 Add( LONG a, LONG b, LONG* pVal)就是测试用的
返回两个数据的和.
客户端的代码为
CoInitialize(0);
int hr =0;
  
COAUTHIDENTITY us;
us.User = L"test";
us.UserLength = wcslen(us.User);
us.Password = L"test";
us.PasswordLength = wcslen(us.Password);
us.Domain = L"domain_A";
us.DomainLength = wcslen(us.Domain);
us.Flags = SEC_WINNT_AUTH_IDENTITY_UNICODE;
COAUTHINFO auth;
auth.dwAuthnSvc = RPC_C_AUTHN_WINNT       ;
auth.dwAuthzSvc = RPC_C_AUTHZ_NONE    ;
auth.pwszServerPrincName = NULL;
auth.dwAuthnLevel = RPC_C_AUTHN_LEVEL_CONNECT;
auth.dwImpersonationLevel = RPC_C_IMP_LEVEL_IMPERSONATE;
auth.dwCapabilities = EOAC_NONE;
auth.pAuthIdentityData = &us;
// 远程计算机的信息
COSERVERINFO rs;
rs.dwReserved1 = 0;
rs.dwReserved2 = 0;
rs.pwszName = L"10.10.10.10"; //服务器的ip地址
rs.pAuthInfo =  &auth;
// 测试组件的接口名
ITest *pTest;
MULTI_QI qi;
qi.hr = 0;
qi.pItf = 0;
qi.pIID = &IID_ITest; //接口
hr = CoCreateInstanceEx(CLSID_Test,
NULL,CLSCTX_REMOTE_SERVER  ,&rs,1,&qi);
// 在这里执行正确了,没有发生错误
if(!SUCCEEDED(hr))
{
printf("Error CoCreateInstanceEx[0x%08x] \r\n",hr );
return (0);
}
pTest = (ITest *)(qi.pItf);
LONG a = 10;
LONG b = 20;
LONG v = 0;
// 计算 v = a+b
hr = pTest->Add(10,20,&v);
// 但是在调用Add方法的时候发生错误,说没有权限.拒绝访问
if(!SUCCEEDED(hr))
{
printf("Error Add[0x%08x] \r\n",hr );
pTest->Release();
return (0);
}
printf(("V = %d\r\n"),v);
pTest->Release();
CoUninitialize();
// 代码结束.
我的客户程序是这个样子的,
1.当CoCreateInstanceEx没有发生错误,当时调用Add方法的时候发生错误了
2.我把查询的接口改为IID_IUnknown既
MULTI_QI qi;
qi.hr = 0;
qi.pItf = 0;
qi.pIID = &IID_IUnknow; //unknown接口
CoCreateInstanceEx正确,但是在
hr = qi.pItf->QueryInterface(IID_ITest,(void **)&pTest);
的时候发生错误,也是说没有权限.拒绝访问


解决方案1:

你将另一台机器脱离出那个域试试!

解决方案2:

DCOM的安全机制建立在windows的安全机制上 你的调用联windows的安全机制都没通过怎么调用组件那?

解决方案3:

一顿搞之后,服务程序能起了,不过还是死在CoCreateInstanceEx上
客户端getlasterror是1008
服务端查看事件,描述是不能在限定时间内组测服务器

解决方案4:

我更惨
我在CoCreateInstanceEx的时候就挂了
在服务端的服务程序根本就没有启动
楼主知道怎么回事吗


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • DCOM中的多串口通讯
  • ★★★关于DCom服务器★★★
  • net中调用dcom对象如何释放
  • 问:不同网段之间可以使用DCOM通讯么?500分
  • DCOM如何走Internet?
  • dcom的问题
  • dcom的问题
  • 请问dcom能够实现这样的问题吗分不够另外给分
  • 一个比较朦胧的问题com/dcom/com+问题,朋友门都来看看
  • Dcom传人输出型字符串的问题!

相关文章

  • 2017-06-05 wtl中的PreTranslateMessage如何截获右键消息
  • 2017-06-04 ocx中如何实现将打印预览作为主窗口?
  • 2017-06-04 关于图形重绘的问题,希望高手们来指点一下啊
  • 2017-06-04 如何修改com程序里的clsid?
  • 2017-06-05 关于DLL的菜鸟问题
  • 2017-06-05 请帮帮我,一个多线程的问题
  • 2017-06-05 怎样由窗口句柄得到窗口所在程序的名称和路径????高分相送!!!
  • 2017-06-05 怎样判断系统是2000还是XP?
  • 2017-06-04 为什么我的IE地址栏有时不支持粘贴操作?
  • 2017-06-04 关于VC开发COM的若三个问题(别看问题小,很烦人呢)。

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 怎样让集成在IE中的工具条类似google的工具条安装后立即显示出来
    • 大家一般都怎么打包Atl开发的ActiveX控件?
    • 已知一个IUnknown接口指针,怎样调用它的方法?高手请进。
    • 有关WORD中使用OLE对象的问题!
    • COM组件客户端调用的时候,用智能指针的时候还需要CoCreateInstance么?
    • NT40中关于com对象不可创建的问题
    • 求VC6操作WPS电子表格源代码
    • 程序中想通过#import"c:\\excel9old"调用excel可是编译时通不过!!!!
    • 以下插件引入自己的软件,需要做方面的工作
    • 线程取消问题.

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有