3

我似乎无法获得启用 NTLM 身份验证和仍然让 RDS 工作的神奇组合。如果我只保留匿名身份验证,RDS 工作正常 - 一旦我在站点范围内启用它,RDS 就会失败(这是意料之中的)。这是我所做的:

  • 这是 Windows XP SP2 和 ColdFusion 8,Eclipse + Adob​​e 插件
  • 在 IIS 管理器中,右键单击默认网站并选择属性
  • 目录安全选项卡,单击编辑按钮进行匿名访问和身份验证控制
  • 身份验证方法弹出窗口,取消选中匿名访问,并选中集成 Windows 身份验证(所有其他检查也为空白)。
  • 单击“确定”、“确定”,并覆盖所有子站点的设置,以便使用 NTLM 身份验证“保护”整个站点。
  • 回到 IIS 管理器,右键单击 CFIDE 虚拟目录,选择属性
  • 目录安全选项卡,编辑身份验证方法。取消选中集成 Windows 身份验证并选中匿名访问。点击 OK,OK 并测试:
C:\>wget -S -O - http://localhost/CFIDE/administrator/
--2009-01-21 10:11:59-- http://localhost/CFIDE/administrator/
正在解析本地主机... 127.0.0.1
连接到 localhost|127.0.0.1|:80... 已连接。
已发送 HTTP 请求,等待响应...
  HTTP/1.1 200 正常
  服务器:Microsoft-IIS/5.1
  日期:格林威治标准时间 2009 年 1 月 21 日,星期三 17:12:00
  X-Powered-By: ASP.NET
  Set-Cookie: CFID=712;expires=Fri, 14-Jan-2039 17:12:00 GMT;path=/
  Set-Cookie: CFTOKEN=17139032;expires=Fri, 14-Jan-2039 17:12:00 GMT;path=/
  设置 Cookie:CFAUTHORIZATION_cfadmin=;expires=Mon, 21-Jan-2008 17:12:00 GMT;path=/
  缓存控制:无缓存
  内容类型:文本/html;字符集=UTF-8
长度:未指定 [text/html]
保存到:`STDOUT'

    ... html 输出如下 ...

到目前为止一切顺利,CFIDE 目录和至少一个子目录似乎在没有 NTLM 身份验证的情况下工作。所以我启动了 Eclipse 并尝试建立一个 RDS 连接。不幸的是,我只收到拒绝访问消息。进一步调查,似乎 Eclipse 正在尝试与 /CFIDE/main/ide.cfm 通信 - 很公平,再次拉出可信赖的 wget 看看 IIS 在做什么:

C:\>wget -S -O - http://localhost/CFIDE/main/ide.cfm
--2009-01-21 10:16:56-- http://localhost/CFIDE/main/ide.cfm
正在解析本地主机... 127.0.0.1
连接到 localhost|127.0.0.1|:80... 已连接。
已发送 HTTP 请求,等待响应...
  HTTP/1.1 401 访问被拒绝
  服务器:Microsoft-IIS/5.1
  日期:格林威治标准时间 2009 年 1 月 21 日,星期三 17:16:56
  WWW-认证:协商
  WWW-认证:NTLM
  内容长度:4431
  内容类型:文本/html
授权失败。

其他地方记录的一个潜在问题是主目录和 ide.cfm 页面实际上并不存在于磁盘上。IIS 配置为将所有 .cfm 文件移交给 JRun,而 JRun 配置为将 ide.cfm 映射到 RDS servlet。为了让 IIS 更加明智,我在磁盘上放置了一个主目录和一个空的 ide.cfm 文件,希望它能解决身份验证问题,但没有任何区别。

作为解决方法,我可以做的是将整个站点保留为匿名访问,然后只启用特定的应用程序文件夹以使用 NTLM 集成身份验证,但实际上有数百个可能的 Web 应用程序我必须这样做。呸。

请帮忙!!!

4

1 回答 1

2

回答你自己的问题有些奇怪,但我终于解决了。

  • 可以为整个网站启用 NTLM 集成身份验证
  • 必须为CFIDE虚拟目录启用匿名访问
  • 必须为JRunScripts虚拟目录启用匿名访问

一旦CFIDEJRunScripts都启用了匿名访问,RDS 和通过 Eclipse 进行的调试就像一个魅力。

于 2009-01-21T20:09:35.153 回答