• 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 > 远程激活com+应用程序失败

远程激活com+应用程序失败

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

佚名通过本文主要向大家介绍了启动远程应用程序失败,远程应用程序,禁止远程查看应用程序,应用程序里的远程控制,远程桌面应用程序等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 远程激活com+应用程序失败
描述:


最近有一个问题一直很烦。我开发环境里面绝大多数电脑安装了com+应用程序都可以远程激活。但有两台电脑出现了问题,返回值总是“hr= 0x80004027 已禁用包含此组件或应用程序的组件“。这两台电脑的操作系统是win2003,而且我在其中一台电脑上安装了com+客户程序,可以运行。我怀疑是安全问题,但是却找不出答案。公司还有一台win2003也安装了同样的com+应用程序,结果一切正常。下面是我的激活代码:
// 设置客户方默认安全级别
HRESULT SetClientDefaultSecurity(
 LPOLESTR wszUser, // 用户名
 LPOLESTR wszDomain, // 服务器名
 LPOLESTR wszPassword, // 密码
 REFCLSID rclsid, // 组件GUID
 MULTI_QI* mqi, // 多接口数组
 int nItf // 数组中接口数
)
{
HRESULT hr = 0;
IUnknown* pIUnk = 0;
//
// The COAUTHIDENTITY structure represents a username and password
//
COAUTHIDENTITY auid;
auid.User = wszUser;
auid.UserLength = wcslen(wszUser);
auid.Domain = wszDomain;
auid.DomainLength = wcslen(wszDomain);
auid.Password = wszPassword;
auid.PasswordLength = wcslen(wszPassword);
auid.Flags = SEC_WINNT_AUTH_IDENTITY_UNICODE;
//
// The COAUTHINFO structure specifys the authentication settings
// used while making a remote activation request from the client 
// machine to server machine.
//
COAUTHINFO auinfo;
auinfo.dwAuthnSvc = RPC_C_AUTHN_WINNT;
auinfo.dwAuthzSvc = RPC_C_AUTHZ_NONE;
auinfo.pwszServerPrincName = NULL;
auinfo.dwAuthnLevel = RPC_C_AUTHN_LEVEL_CONNECT;
auinfo.dwImpersonationLevel = RPC_C_IMP_LEVEL_IMPERSONATE;
auinfo.pAuthIdentityData = &auid;
auinfo.dwCapabilities = EOAC_NONE;
//
// Indentifies a remote machine resource to the new or enhanced
// activation functions.
//
COSERVERINFO svrinfo;
svrinfo.dwReserved1 = 0;
svrinfo.dwReserved2 = 0;
svrinfo.pAuthInfo = &auinfo;
svrinfo.pwszName = wszDomain;
hr = CoCreateInstanceEx(rclsid, 0, CLSCTX_ALL, &svrinfo, nItf, mqi);
if ( FAILED(hr) )
return hr;
pIUnk = (IUnknown*) mqi[0].pItf;
if ( pIUnk == NULL )
return hr;
IClientSecurity* pcs = 0;
hr = pIUnk->QueryInterface(IID_IClientSecurity, (void**) &pcs);
if ( FAILED(hr) ) 
return hr;
for (int i=0; i < nItf; i++)
{
hr = pcs->SetBlanket(mqi[i].pItf,
RPC_C_AUTHN_WINNT,
RPC_C_AUTHZ_NONE,
NULL,
RPC_C_AUTHN_LEVEL_PKT,
RPC_C_IMP_LEVEL_IMPERSONATE,
&auid,
EOAC_NONE);
if ( FAILED(hr) ) 
{
pcs->Release();
return hr;
}
}
pcs->Release();
return S_OK;
}


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

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

  • 远程激活com+应用程序失败

相关文章

  • 2017-06-04 求有关做自己组件的问题
  • 2017-06-05 弱弱的问:有什么工具可以定制桌面上的图标?也就是想显示哪个就显示哪个不是全部显示和全部不显示的那种。
  • 2017-06-04 下载了一些ATL做的COM组件源码,发现有些组件的接口,有h和idl两个文件,有的却只有idl,这是怎么形成的?
  • 2017-06-05 急求各位高手来帮我解决有关twain扫描仪的问题!!!!!!!!!!!!!
  • 2017-06-05 如何确定一个控件在IE中是安装还是被正常加载
  • 2017-06-04 MSComm控件
  • 2017-06-04 如何初始化picture属性
  • 2017-06-05 activeX问题
  • 2017-06-04 请问有没有哪位达人知道可以使用自带的控件CMSCOMM单独开辟一个线程(在线等答复)
  • 2017-06-05 DLL的编译问题???请高手帮忙

文章分类

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

最近更新的内容

    • 100分求救!线程通信的问题!
    • OLD的module中的函数在VC中如何调用?
    • 关于COM集合和枚举的问题,有段代码,不知道是什么问题。请大家帮帮忙!
    • 如何以代码形式将某UI组件加入到MFC应用程序
    • 欲做一音频播放器,请教
    • 高分求教线程消息传递问题
    • 奇怪的现象,在线程中使用SOCKET,该线程有时会退出,导致程序退出
    • com自动化问题?大家帮帮忙啊!
    • activeControlWizard做成的控件的问题
    • ActiveXdll多线程问题?

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

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