• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

[Pipe]跨域访问命名管道

发布: 2007-7-01 20:40 | 作者: admin | 来源: | 查看: 53次 | 进入软件测试论坛讨论

领测软件测试网

跨域访问命名管道

 

版本

创建时间

创建人

备注

1.0.0604.1

2003-6-4

郑 昀

第一稿

 

 

 

 

本文档将说明如何跨越两个互相不信任的Windows 2000 域使用命名管道。问题最终解决,我有幸记录下了排查、解决问题的全过程。

 

继续阅读之前,我们假设您熟悉以下知识:

n         Named Pipe

n         Access Control List

n         Discretionary Access Control List

n         IIS 5.0

 

现象

同事遇到了这么一个问题:

“我做了一个com(dll),这个com将被asp调用,连接到一个namedpipe。现在遇到了一些访问权限问题:

COMnamedpipe位于同一个计算机

       使用vbs测试,com可访问管道

       使用iis,则com不能访问管道,错误代码是:5,Access is denied.      

 

COMnamedpipe位于不同的域中的计算机,IISCOM位于同一个计算机

       使用vbs测试,com不能访问管道,错误代码:1326,Logon failure: unknown user name or bad password   

       使用iis,不能访问..错误代码是:5,Access is denied.

 

COMnamedpipe位于不同的域中的计算机

       但在COM所在计算机上使用 net use \\server2\pipe /USER:xxx

       指定了用户名,密码之后

       使用vbs测试,com可访问管道

       使用iis,不能访问..错误代码是:5,Access is denied.

 

综合起来,问题在于IIS进程调用的COM,访问另外的程序创建的命名管道时候,因权限问题而无法访问。”

解决步骤

需要做两步:

u      管道服务器端   在创建命名管道的时候,要明确指定DACL为NULL。如果不指定这一步,客户端将返回错误码:5(拒绝访问)。事实上只有管道创建者才可以访问管道。

u      客户端         客户端连接之前,使用WNetAddConnection2 进行网络连接登录。实际测试中发现,如果不进行这一步,运行结果返回错误码:1326。

 

DACL的指定

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网