我试图为特定用户在 UNC 路径上授予 NTFS 权限,但我看到不同的行为取决于 UNC 路径。下面是我用来授予权限的代码(来自MSDN )以及每种情况下的结果,
static void GiveNTFSPermissions(string folderPath,
string ntAccountName,
FileSystemRights accessRights)
{
DirectorySecurity dirSecurity = Directory.GetAccessControl(folderPath);
FileSystemAccessRule newAccessRule =
new FileSystemAccessRule(
ntAccountName,
accessRights,
AccessControlType.Allow);
dirSecurity.AddAccessRule(newAccessRule);
Directory.SetAccessControl(folderPath, dirSecurity);
}
假设我在本地机器上有一个名为“<em>RootShare”的共享,其中还有另一个文件夹“<em>InsideRootShare”。
场景1:
当我打电话时,
GiveNTFSPermissions(@"\\sri-devpc\RootShare",
@"domain\username",
FileSystemRights.Write);
共享路径上的继承权限丢失,
场景2: 当我打电话时,
GiveNTFSPermissions(@"\\sri-devpc\RootShare\InsideRootShare",
@"domain\username",
FileSystemRights.Write);
继承的权限完好无损。
我尝试过不同的构造函数,FileSystemAccessRule
但没有运气。
这种行为背后的原因是什么,以及任何解决方法?