C# - 有没有办法获取默认 FTP 站点的本地路径?
有没有办法以编程方式获取默认 FTP 站点(在 IIS 中)的本地路径?
如 C:\program files\ftproot,如下所示:
我想它会是这样的:
DirectoryEntry ftproot = new DirectoryEntry("IIS://localhost/MSFTPSVC/1/Root");
string directory; // = ftproot.something
有什么想法吗?
编辑:这适用于 IIS 6.0。当然,这必须存储在某个地方 - 也许在注册表中?
Is there a way to get the local path of the Default FTP site (in IIS) programmatically?
Like C:\program files\ftproot, shown below:
I'd imagine it would be something like:
DirectoryEntry ftproot = new DirectoryEntry("IIS://localhost/MSFTPSVC/1/Root");
string directory; // = ftproot.something
Any ideas?
Edit: This would be for IIS 6.0. Surely this has got to be stored somewhere - maybe in the registry?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
据我所知,Active Directory 有两个属性:msIIS-FTPRoot、msIIS-FTPDir。
来自 Technet
基本上,用户的主文件夹是通过查询进行身份验证确定的Active Directory 中用户对象的 msIIS-FTPRoot 和 msIIS-FTPDir 属性。 msIIS-FTPRoot 和 msIIS-FTPDir 值的串联产生用户主文件夹的路径。
示例可能如下所示:
这将导致“D:\FTP Users\JohnSmith”作为用户的主文件夹。
遍历所有用户和默认目录的代码:
From what I know, there are two Active Directory attributes: msIIS-FTPRoot, msIIS-FTPDir.
From Technet
Basically, the user's home folder is determined upon authentication by querying the msIIS-FTPRoot and msIIS-FTPDir attributes of the user object in Active Directory. The concatenation of the msIIS-FTPRoot and msIIS-FTPDir values results in the path to the user's home folder.
An example may look like this:
This will result in "D:\FTP Users\JohnSmith" as the home folder for the user.
Code to traverse all the users and there default directories:
至少对于 IIS 6,我在注册表中找到了它:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MSFtpsvc\Parameters\Virtual Roots\
数据格式有点奇怪 - 例如,D:\ftproot,,1
For IIS 6 at least, I found it in the registry here:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MSFtpsvc\Parameters\Virtual Roots\
Format of the data is a little strange - for instance, D:\ftproot,,1