各位高手,我在服务器端编好DCOM服务程序客户端程序
但将客户端程序放在另外一电脑运行用时,
老是弹出“权限拒绝”,在同一电脑运行是没有此问题
请教!!!!!!!!!!!!

解决方案 »

  1.   

    默认情况下,计算机调试管理器并没有设置为使用自定义的 DCOM 权限,因此,它使用默认的计算机级别的 DCOM 权限。出于安全考虑,默认 DCOM 权限非常严格。空白访问权限意味着只有系统以及与服务器标识相同的客户端标识能够访问 DCOM 服务器。如果客户端的标识与服务器的标识不同,客户端将出现"Access denied"的错误。 
    解决方案
    若要解决这一问题,请按照下列步骤操作:1. 在命令提示符下,键入以下命令,打开"分布式 COM 配置属性":
    dcomcnfg.exe 
    2. 在应用程序选项卡的 DCOM 服务器列表中,浏览到计算机调试管理器项。如果该项不存在,则在命令提示符下键入以下命令,添加该项:
    mdm.exe /regserver 
    3. 再次打开"分布式 COM 配置属性",单击计算机调试管理器,然后单击属性。 
    4. 在安全性选项卡上,单击"使用自定义访问权限",然后单击编辑。 
    5. 将相应的用户添加到计算机调试管理器的访问权限。Microsoft 建议至少为下列用户授予访问权限:
    交互式
    系统
    管理员
    IWAM_< 计算机名 >
    单击两次确定,返回到安全性选项卡。 
    6. 在安全性选项卡上,单击"使用自定义启动权限",然后单击编辑。 
    7. 将相应的用户添加到计算机调试管理器的启动权限。Microsoft 建议至少为下列用户授予访问权限:
    交互式
    系统
    管理员
    IWAM_< 计算机名 >
    单击两次确定,返回到安全性选项卡。 
    8. 在标识选项卡上,单击交互式用户,设置计算机调试管理器的用户帐户标识。如果以后不会有用户登录该计算机,则单击指定用户,然后键入 Administrators 组中某个用户的用户名和密码。 
    9. 关闭 Mdm.exe 的所有实例或重新启动计算机,以使这些更改生效。
      

  2.   

    我的总结
    1.在Client和Server注册组件
    2.在Client和Server组件服务->计算机->我的电脑->属性->默认COM + guest
    3.在Client和Server组件服务->计算机->我的电脑->DCOM配置->DcomServer Object->属性->安全性 + guest
    4.身份验证级别:无
    5.标识:交互式用户sp2情况
    1.在Client和Server组件服务->计算机->我的电脑->属性->默认COM + Anonymous 和EveryOne
      并且配置相关权限
    2.在Client和Server设置例外程序
    3.开放135端口
      

  3.   

    一楼的偶没试,暂时还不明白在这当中MDM到底做了些啥见不得人的事
    二楼的方法倒是实践过程当中大家所使用的方式,不过倒存在安全性问题。偶建议的方式是修改Borland Socket Server让它对某个被访问的COM做某项检查,增加安全性(原来的Borland Socket Server只检测两个键值,而那两个键值在所有Delphi/CBuilder开发的运行远程访问的COM当中都存在),这一点有点类似于Microsoft所进供的RDS远程HTTP COM代理。
      

  4.   

    不过考虑到Borland Socket Server(Socket Connection)访问速度等问题,另一种建议是修改TDCOMConnection使得它支持身份验证模式的远程COM访问。
      

  5.   

    配置完 DCOM 后,还有一个最重要的就是,本人亲身经历过的,Administrator 的密码要一样,登陆的时候都要用 Administrator 登陆,肯定就行,我也不知道为啥,就是给点意见,理论上应该不是这样
      

  6.   

    DCOM配置
      如果在Windows NT环境下正常运行应用服务器,必须进行DCOM配置。配置方法如下:  1. 运行NT服务器上的dcomcnfg程序,进行DCOM配置。
      2. 进入DCOM的总体默认属性页面,将“在这台计算机上启用分布式COM”打上勾,将默认身份级别改为“无”。
      3. 进入DCOM的总体默认安全机制页面,确认默认访问权限和默认启动权限中的默认值无EveryOne,如果不去掉EveryOne,应用服务器不能正常启动。
      4.在常规页面中,双击你的应用服务器,打开你的应用服务器DCOM属性设置。
      5.将常规页面中的身份验证级别改为“无”。
      6.位置页面中选上“在这台计算机上运行应用程序”。
      7.将安全性页面设置中,均选择“使用自定义访问权限”,编辑每一个权限,将EveryOne加入用户列表中。
      8.身份标识页面中,选择“交互式用户”。
      9.NT的GUEST用户不能禁用。
      

  7.   

    补充 aiirii(ari-淘金坑) 
    10. 将客户端的网关设置为服务器的ip