如何使用.NET设置文件夹权限?

Met*_*uru 1 asp.net file-permissions windows-server-2003

是否可以使用一个小的.NET页面来设置它所在的服务器上的某些文件夹的文件夹权限?可用于此的代码或对象是什么?我在Windows Server 2003上.

基本上我想用GET或POST命中页面,让它运行并检查和/或更新文件夹的权限.

Cra*_*gTP 6

有很多方法可以解决这个问题.

一种是使用FileIOPermissions类,它允许您指定文件和文件夹的权限.

另一种选择是使用System.Security.AccessControl命名空间中的DirectorySecurity类,特别是该类的SetAccessControl方法.

第二种方法应为您提供更多的粒度和控制权限的设置作为System.Security.AccessControl命名空间可以让你以编程方式创建或修改任意访问控制列表(DACL)和系统访问控制列表(SACL)的数受保护的资源,例如文件,文件夹等.

无论您选择执行权限设置的方法如何,都需要注意运行ASP.NET驱动的代码的帐户.您说您使用的是Windows Server 2003,因此您可能正在使用IIS 6.0版.默认情况下,IIS 6.0将在" 网络服务 "帐户下运行所有​​用户代码,该帐户是一个低权限帐户,并且在IIS进程和网站层次结构之外具有有限的权限.您可以阅读MSDN文章"如何:使用网络服务帐户访问ASP.NET中的资源"关于访问服务器端的资源以及您将在此帐户下具有的访问权限.

根据您要执行的操作的确切性质,您可能还需要查看ASP.NET模拟,以使您的服务器端代码能够在其他帐户的上下文中运行.有关详细信息,请参阅MSDN文章" 如何:在ASP.NET 2.0中使用模拟和委派 ".