将 IIS FTP 与虚拟目录配置为 UNC 路径

将 IIS FTP 与虚拟目录配置为 UNC 路径

我在 Windows Server 2003 计算机(我们称之为 FTPPC)上运行 IIS 6 FTP 服务器,并连接到一个域(我们称之为 DOMAIN)。

允许匿名连接已关闭,因此用户需要域帐户才能连接到 ftp。用户使用 DOMAIN\USERNAME 连接到 ftp

ftp 的根目录指向 E:\FTP-ROOT\,里面有 2 个文件夹:\PATH1\ \PATH2\

有一个名为 PATH1 的虚拟目录,指向域中另一台 PC(称为 DOMAINPC)上的 UNC 共享,设置为“始终使用经过身份验证的用户凭据”。连接到 ftp 时,用户可以浏览此目录并成功查看内容。

还有一个名为 PATH2 的虚拟目录,指向未连接到域的 PC 上的 UNC 共享(称为 NODOMAINPC)。

我在 NODOMAINPC 上创建了一个名为 USER1 的用户,并在 FTPPC 上创建了完全相同的用户名,并且在两个帐户上使用了相同的密码。

在 PATH2 虚拟目录的“连接为”部分,我尝试了多种方法,得到了不同的结果:

将用户名设置为 FTPPC\USER1 - 当尝试通过 ftp 浏览虚拟目录时,错误为“访问被拒绝” 将用户名设置为 NODOMAINPC\USER1 - 当尝试通过 ftp 浏览虚拟目录时,错误为“登录失败:未知用户或密码错误” 将用户名设置为 USER1 - 当尝试通过 ftp 浏览虚拟目录时,错误为“访问被拒绝”

可以这样做吗?如果可以,我哪里做错了?我可以通过 Windows 连接到 UNC 路径,但不能通过 ftp 连接。

谢谢

答案1

这确实很奇怪。我设置了您描述的配置,IIS 在 DC 而非成员服务器上运行,虚拟目录配置为使用登录用户。这有效。然后我尝试在非域服务器上运行 IIS,它也有效。遗憾的是,在域成员服务器上运行的 IIS 是我无法测试的一个配置。

然后我配置虚拟目录以 nondomainpc\administrator 身份进行连接。在 DC 上这不起作用,但在非域服务器上却起作用。

我启动网络监视器查看,当 DC 上的虚拟目录配置为使用非 DC PC 的管理员帐户时,DC 尝试建立匿名连接。它没有尝试使用我为虚拟目录配置的 nondomainpc\administrator 用户名。在我看来,这似乎是个错误。

请注意,当使用登录用户时,虚拟目录在 DC 上确实有效,而您的情况却无效。但是我注意到 DC 往往忽略用户名“host\user”的“host”位,大概是因为 DC 上没有 SAM,所以我不会太在意这一点。成员服务器大概将登录用户名作为“domain\user”传递,而您的非 DC 服务器拒绝了它。

在解决您的问题方面,我只能建议将 FTP 服务器移至 DC 或非域服务器,但我想这两个选项都不太有吸引力 :-(

JR

答案2

如果您仔细想想,就会发现您的 PC 正在向 FTP 服务器传递一个凭证令牌,因为您已经通过了域身份验证。但是,FTP 服务器无法将此令牌传递给 NODOMAINPC,因为它无法识别该令牌(它无法识别域控制器)。

我认为您唯一的选择是所有用户都以 FTP 服务帐户凭据连接到 UNC 共享。显然,所有用户实际上都具有相同的 NTFS ACL 权限。

既然无论如何您都必须使用原始方法复制所有用户名/密码,为什么不直接放弃 IIS 并使用 FileZilla 服务器或类似服务器并在 FTP 服务器中设置每个用户的所有权限呢?我发现 IIS 中的 FTP 权限大多是阻碍而不是帮助。

相关内容