我正在尝试编程允许对目录上的 ASPNET 帐户进行写访问。我使用以下代码来执行此操作:(请注意,我希望 ASPNET 的“允许写入访问权限”也传播到子对象:
static void Main(string[] args)
{
FileSecurity fileSecurity;
fileSecurity = new FileSecurity();
fileSecurity.SetAccessRuleProtection(true, false);
fileSecurity.AddAccessRule(new FileSystemAccessRule("ASPNET",FileSystemRights.Write,InheritanceFlags.ObjectInherit|InheritanceFlags.ContainerInherit,PropagationFlags.InheritOnly,AccessControlType.Allow));
File.SetAccessControl("C:\\TestDir1", fileSecurity);
}
此代码导致异常:“无法设置任何标志。\r\n参数名称:inheritanceFlags”
可能出什么问题了?
得到了解决方案,显然我必须这样做:
DirectoryInfo dirInfo = new DirectoryInfo("C:\\TestDir2");
DirectorySecurity dirSecurity = dirInfo.GetAccessControl();
dirSecurity.AddAccessRule(new FileSystemAccessRule("ASPNET", FileSystemRights.Write|FileSystemRights.DeleteSubdirectoriesAndFiles, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.InheritOnly, AccessControlType.Allow));
dirInfo.SetAccessControl(dirSecurity);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)