如何使用 .NET 设置文件夹权限?
Posted
技术标签:
【中文标题】如何使用 .NET 设置文件夹权限?【英文标题】:How to set folder permissions with .NET? 【发布时间】:2011-01-17 00:56:11 【问题描述】:是否可以使用一个小的 .NET 页面来设置其所在服务器上某些文件夹的文件夹权限?可用于此的代码或对象是什么?我在 Windows Server 2003 上。
基本上我想用 GET 或 POST 访问页面并让它运行并检查和/或更新文件夹的权限。
【问题讨论】:
【参考方案1】:有很多可能的方法来解决这个问题。
一种是使用FileIOPermissions 类,它允许您指定文件和文件夹的权限。
另一种选择是在System.Security.AccessControl 命名空间中使用DirectorySecurity 类,特别是该类的SetAccessControl 方法。
第二种方法应该为您提供更多的粒度和权限设置控制,因为 System.Security.AccessControl 命名空间允许您以编程方式为许多受保护的资源(例如文件、文件夹、等等。
无论您选择何种方法来执行权限设置,您都需要注意运行 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”。
【讨论】:
【参考方案2】:您可以使用FileIOPermission 类来执行此操作。只需确保运行网站的用户拥有此权限即可进行所有安全设置。
【讨论】:
以上是关于如何使用 .NET 设置文件夹权限?的主要内容,如果未能解决你的问题,请参考以下文章