繁体   English   中英

如何为活动目录的用户授予FTP文件夹权限

[英]How can I grant permissions for a FTP Folder for users of the active directory

我有一个asp.net Web应用程序,该应用程序在FTP站点上创建一个文件夹,但是我需要向该活动目录的某些用户授予对该文件夹的权限。

创建文件夹时,如何在我的应用程序中以编程方式执行此操作?

我假设您正在创建文件夹,并且想要在ac#应用程序中设置权限。

您要查看DirectorySecurity类( msdn

您为新创建的目录创建directorySecurity类,然后添加FileSystemAccessRules以基于AD用户和组定义适当的访问。

标准FTP不允许更改权限或文件所有权,但是FTP服务器通过自定义SITE命令允许这种事情是相当普遍的。 至少,这在UNIX托管的FTP服务器上很常见。

尝试使用标准的FTP客户端连接到服务器,然后键入site help 那应该给您列出可用的自定义SITE命令。 然后,您可以通过键入site help <cmd>来获取特定命令的用法。

我不确定您将针对基于Windows的服务器使用什么选项,因为权限模型比标准UNIX权限更精细。 在UNIX服务器上,通常可以更改组所有权和权限,但是除非您是root用户,否则不允许更改文件所有者。 我不必非要说以root用户身份登录FTP服务器是一个非常糟糕的主意。

希望对您有所帮助。

[R

您没有说您正在运行哪种FTP服务器,或者您希望AD用户以何种方式与新文件夹交互。 我假设您正在使用IIS的FTP服务,并且您需要AD用户能够使用FTP访问新文件夹。

IIS使用与Windows中其他文件访问方法相同的访问权限(可从文件夹的“属性”视图的“安全性”选项卡访问)。

我创建了一个WinForm,它将执行以下操作:创建一个新的本地用户帐户(并将它们添加到组中),在FTP服务器的基本目录下创建一个新目录,创建一个新的虚拟FTP文件夹(以便用户可以映射一个连接到该文件夹​​),并最终赋予新用户对新目录的完全控制权(并且由于该目录是虚拟文件夹,因此新用户可以通过FTP拥有完全控制权)。

听起来您不需要创建新用户,只需要授予他们更改新目录的权限即可。 在我的应用程序中,我通过外壳调用一个批处理文件并将其传递给几个参数。

用于修改目录(或文件)访问权限的命令为:

cacls [The path to your new directory] /E /P [The AD user name]:C

我不记得这些参数的含义了。 我建议您研究该命令以确保它完全符合您的要求。

要从VB.Net执行此操作:

Shell(System.Configuration.ConfigurationSettings.AppSettings.Item("CACLS_batPath") & " " & strFolderPath & " " & _strUserName, AppWinStyle.NormalFocus, True, -1)

这将打开一个可见的命令窗口并执行批处理文件,并向其传递参数。 (在我看来,我是在WinForms中执行此操作的,从ASP.Net调用它可能并不容易,请在此处查看有关从ASP.Net执行批处理文件的信息: http : //codebetter.com/博客/brendan.tompkins/archive/2004/05/13/13484.aspx

BAT文件的内容为:

echo "update file permissions"
cacls %1 /E /P %2:C
REM PAUSE

祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM