我似乎无法获得启用 NTLM 身份验证和仍然让 RDS 工作的神奇组合。如果我只保留匿名身份验证,RDS 工作正常 - 一旦我在站点范围内启用它,RDS 就会失败(这是意料之中的)。这是我所做的:
- 这是 Windows XP SP2 和 ColdFusion 8,Eclipse + Adobe 插件
- 在 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 应用程序我必须这样做。呸。
请帮忙!!!