2010-02-15 95 views
1

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

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

回答

2

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

6

有几种可能的方法来解决这个问题。

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

另一种选择是使用System.Security.AccessControl命名空间中的DirectorySecurity类,特别是该类的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”。