我在 Windows Server 2003 计算机(我们称之为 FTPPC)上运行一个 IIS 6 FTP 服务器,它连接到一个域(我们称之为 DOMAIN)。
允许匿名连接已关闭,因此用户需要域帐户才能连接到 ftp。用户使用 DOMAIN\USERNAME 连接到 ftp
ftp 的根目录指向 E:\FTP-ROOT\,里面有 2 个文件夹:\PATH1\ \PATH2\
有一个名为 PATH1 的虚拟目录指向域中另一台 pc 上的 UNC 共享(称为 DOMAINPC),设置为“始终使用经过身份验证的用户凭据”。连接到 ftp 后,用户可以浏览到此内容并成功查看内容。
还有一个名为 PATH2 的虚拟目录指向未连接到域的 pc 上的 UNC 共享(称为 NODOMAINPC)。
我在 NODOMAINPC 上创建了一个名为 USER1 的用户,并在 FTPPC 上创建了完全相同的用户名,两个帐户的密码相同。
在 PATH2 虚拟目录的“连接为”部分中,我尝试了多种不同的结果:
将用户名设置为 FTPPC\USER1 - 尝试通过 ftp 浏览虚拟目录时,错误为“访问被拒绝” 将用户名设置为 NODOMAINPC\USER1 - 尝试通过 ftp 浏览虚拟目录时,错误为“登录失败: 未知用户或密码错误” 将用户名设置为 USER1 - 尝试通过 ftp 浏览虚拟目录时,错误为“访问被拒绝”
这可以做到吗?如果是这样,我哪里错了?我可以通过 Windows 连接到 UNC 路径,但不能通过 ftp。
谢谢
这确实是一件奇怪的事。我使用运行在 DC 而非成员服务器上的 IIS 设置您描述的配置,并将虚拟目录配置为使用登录用户。这行得通。然后我尝试了在非域服务器上运行的 IIS,它也运行良好。遗憾的是,在域成员服务器上运行的 IIS 是我无法测试的一个配置。
然后我将虚拟目录配置为以 nondomainpc\administrator 身份连接。在 DC 上这不起作用,但在非域服务器上却可以。
我启动了网络监视器进行查看,当 DC 上的虚拟目录配置为使用非 DC PC 的管理员帐户时,DC 尝试建立匿名连接。它没有尝试使用我为虚拟目录配置的 nondomainpc\administrator 用户名。这对我来说似乎是一个错误。
请注意,在使用登录用户时,虚拟目录在 DC 上确实有效,而在您的情况下却没有。但是我注意到 DC 往往会忽略用户名“host\user”的“host”位,大概是因为 DC 上没有 SAM,所以我不会对此重视太多。成员服务器可能将登录的用户名作为“域\用户”传递,而您的非 DC 服务器正在拒绝它。
在解决您的问题方面,我只能建议将 FTP 服务器移动到 DC 或非域服务器上,但我想这些选项都不会太有吸引力:-(
JR
如果您考虑一下,您的 PC 正在将凭证令牌传递给 FTP 服务器,因为您已经通过了域身份验证。然而,FTP 服务器不能将此令牌传递给 NODOMAINPC,因为它无法识别该令牌(它不能识别域控制器本身)。
我认为您唯一的选择是所有用户都连接到 UNC 共享作为 FTP 服务帐户凭据。显然,尽管所有用户实际上都具有相同的 NTFS ACL 权限。
由于无论如何您都必须使用原始方法复制所有用户名/密码,为什么不直接转储 IIS 并使用 FileZilla 服务器或类似服务器并在 FTP 服务器中设置每个用户的所有权限?我发现 IIS 中的 FTP 权限更多的是障碍而不是帮助。