[英]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.