5
我试图在特定用户的UNC路径上授予NTFS权限,但根据UNC路径看到了不同的行为。下面是代码(从MSDN),我现在用的授予权限,结果在每个场景中,授予NTFS权限时丢失了继承权限
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);
}
假设我有一个名为“RootShare”我的本地机器上的份额,而另一个文件夹“InsideRootShare“里面。
Scenario1: 当我打电话,
GiveNTFSPermissions(@"\\sri-devpc\RootShare",
@"domain\username",
FileSystemRights.Write);
继承的权限丢失的共享路径上,
Scenario2: 当我打电话,
GiveNTFSPermissions(@"\\sri-devpc\RootShare\InsideRootShare",
@"domain\username",
FileSystemRights.Write);
继承权限完好无损。
我尝试过不同的构造函数FileSystemAccessRule
,但没有运气。
这种行为背后的原因是什么,以及对此的任何解决方法?
您是否尝试过使用'InheritanceFlags'作为参数的[构造函数](http://msdn.microsoft.com/zh-cn/library/system.security.accesscontrol.filesystemaccessrule.aspx)?另外,'AddNTFSPermission'比'GiveNTFSPermissions'更合理,因为它试图将新的访问规则添加到现有的访问规则中。 – Nawaz
看到这个主题:http://stackoverflow.com/questions/243995/setting-folder-permissions-on-vista – Nawaz
@Nawaz:我试过所有的构造函数,并且我得到了相同的结果。感谢您的建议:) – sri