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

时间:2010-02-15 15:28:35

标签: asp.net windows-server-2003 file-permissions

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

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

2 个答案:

答案 0 :(得分:6)

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

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

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

第二种方法应该为您提供更多的粒度和对权限设置的控制,因为System.Security.AccessControl命名空间允许您以编程方式为许多受保护资源(如文件)创建或修改discretionary access control lists (DACLs) and system access control lists (SACLs),文件夹,等等。

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

根据您要执行的操作的确切性质,您可能还需要查看ASP.NET Impersonation以使您的服务器端代码能够在其他帐户的上下文中运行。有关详细信息,请参阅MSDN文章“How To: Use Impersonation and Delegation in ASP.NET 2.0”。

答案 1 :(得分:2)

您可以使用FileIOPermission类来执行此操作。只需确保运行网站的用户具有执行所有安全设置的权限。