【问题标题】:How change read/write permissions on IIS FTP using C#?如何使用 C# 更改 IIS FTP 的读/写权限?
【发布时间】:2019-12-03 10:19:40
【问题描述】:

我在多个 IIS FTP 站点(多个服务器 2008-2019)的只写根文件夹下使用 C# 创建子文件夹。当我创建子文件夹时,它会从它的根目录继承只写的“FTP 授权”。如何更改新创建的子文件夹的 FTP 授权以使用 C# 进行读/写?

【问题讨论】:

  • 为什么??? IIS 被认为是安全的,并且不允许访客用户访问文件系统。您应该只允许用户将文件放在允许访客读取和写入的单独网络驱动器(而不是 IIS)上。
  • 为什么不应该是获得答案的先决条件。他们都是内部用户,因此不必非常安全。我只是想阻止用户(使用特定的登录名/密码)随意浏览他们在登录时可能碰巧看到的子文件夹列表。
  • 只是一个好习惯,不要在安全服务器上胡闹。您需要管理员权限才能让 GUEST 组读/写您的文件夹。我认为在 IIF 上挂载网络驱动器并让网络驱动器读/写并在网络驱动器上创建 FTP 的根文件夹会更好。
  • 在 C# 中你可以使用托管 API docs.microsoft.com/en-us/dotnet/api/… 但是如果你想要示例代码,你可能应该使用搜索引擎。
  • jdweng,我指的不是文件权限,而是FTP服务器中的FTP授权规则。如果两者都暴露于 IIS,也不确定为什么网络驱动器与其中一个硬盘驱动器有任何不同。 Lex,我一直在尝试谷歌,但找不到如何更改单个文件夹的授权。

标签: c# iis permissions ftp


【解决方案1】:

这是我将 FTP 授权规则添加到特定路径上的 IIS FTP 站点的方法。

            using (ServerManager serverManager = new ServerManager())
            {
                Configuration config = serverManager.GetApplicationHostConfiguration();
                ConfigurationSection authorizationSection = config.GetSection("system.ftpServer/security/authorization", "FTP/LDNClient/Reports/" + itm["ftpClientName"]);
                ConfigurationElementCollection authorizationCollection = authorizationSection.GetCollection();

                ConfigurationElement addElement = authorizationCollection.CreateElement("add");
                addElement["accessType"] = @"Allow";
                addElement["users"] = @"LDNClient";
                addElement["roles"] = @"";
                addElement["permissions"] = @"Read, Write";
                authorizationCollection.Add(addElement);

                serverManager.CommitChanges();
            }

"FTP/LDNClient/Reports/" + itm["ftpClientName"] 是我需要更新的路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-17
    • 2011-02-27
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多