我在IIS 7中设置了用户隔离的FTPS。我试图通过.NET中的FtpWebRequest将文件上传到特定用户的目录。我假设如果我使用User1的凭据进行连接,它会自动将文件放在User1的文件夹中。问题是文件被放入我的Web根目录,而不是上下文用户的文件夹。
我也有一个用于Web根目录的FTP站点,所以我理解为什么会这样做。网站FTP在端口21上运行,但此用户隔离的FTP站点位于端口990(隐式TLS)上。 如何将文件直接上传到用户的文件夹?使用路径不起作用([ipaddress] / user1),也不能将端口添加到URI。 ([IPADDRESS]:990)
答案 0 :(得分:0)
我能够使用AlexFTPS解决这个问题:
本质上,此类库允许您指定FTP连接应使用隐式TLS,因此默认情况下使用端口990。否则无法在.NET中指定(例如,作为主机名的一部分)。这允许我根据传入的凭据将文件上传到特定的用户目录。如果您在端口21上有标准的FTP站点,这也可以。
基本代码......
AlexFTPSInstance.Connect([“FtpHost”],新NetworkCredential([“FtpUsername”],[“FtpPassword”]),ESSLSupportMode.CredentialsRequired | ESSLSupportMode.DataChannelRequested | ESSLSupportMode.Implicit);
client.PutFile([“LocalFileDirectory / LocalFileName”],[“ServerFileDirectory / ServerFileName”]);
AlexFTPS可以在这里获得 - https://ftps.codeplex.com/