【发布时间】:2017-12-28 05:03:00
【问题描述】:
我正在尝试授予 C:\Windows\System32\inetsrv\config 文件夹的权限。但是当我使用下面的代码时,它会抛出异常“尝试执行未经授权的操作”。
string desktopFolderPath = @"C:\Windows\System32\inetsrv\config";
FileSystemAccessRule iis_iusrs = new FileSystemAccessRule("IIS_IUSRS",
FileSystemRights.FullControl,
InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
PropagationFlags.None,
AccessControlType.Allow);
FileSystemAccessRule networkService = new FileSystemAccessRule("NETWORK SERVICE",
FileSystemRights.FullControl,
InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
PropagationFlags.None,
AccessControlType.Allow);
System.IO.DirectoryInfo desktopFolderDirectory = new System.IO.DirectoryInfo(desktopFolderPath);
DirectorySecurity directorySecurity = null;
directorySecurity = desktopFolderDirectory.GetAccessControl(); -- **Exception**
directorySecurity.AddAccessRule(iis_iusrs);
directorySecurity.AddAccessRule(networkService);
desktopFolderDirectory.SetAccessControl(directorySecurity);
如果有人可以,请提供帮助。提前致谢。
【问题讨论】:
-
您是否以管理员用户身份执行代码?
-
为什么要从您的 asp.net 站点访问 Windows 级别的文件?
-
@Jim 我想在客户端机器上运行这段代码,所以我不是管理员用户,但我想执行这些操作。我该怎么做?
-
@programtreasures 这与我之前的问题有关,即回收应用程序池。但为此我需要授予 IIS_IUSRS 权限,所以我需要访问客户端的配置文件夹来执行此操作。