授予特定本地 Windows 用户组对文件夹及其子文件夹的读取权限
Give specific local Windows user group read access to a folder and its subfolders
我想以编程方式授予本地用户组 <MachineName>\IIS_IUSRS
访问文件夹及其子文件夹的权限。
我当前的代码如下所示:
DirectoryInfo directoryInfo = new DirectoryInfo(path);
DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();
var groupName = Environment.MachineName + @"\IIS_IUSRS";
directorySecurity.AddAccessRule(
new FileSystemAccessRule(groupName,
FileSystemRights.Read,
InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
PropagationFlags.None,
AccessControlType.Allow));
directoryInfo.SetAccessControl(directorySecurity);
但是这是抛出一个System.Security.Principal.IdentityNotMappedException
。将 groupName
替换为 new SecurityIdentifier(WellKnownSidType.WorldSid, null);
的 SID 有效。
我是否需要为团体申请 SecurityIdenfier
?如果需要,我该怎么做?还是我需要为团体做完全不同的事情?
编辑: BUILTIN\IIS_IUSRS
也没有用,因为我在德语语言环境中使用 Windows。
你不需要使用SID,我曾经写过一个工作程序,它使用了"DOMAIN\GroupName"并且运行良好。而不是:
var groupName = Environment.MachineName + @"\IIS_IUSRS";
尝试:
var groupName = @".\IIS_IUSRS";
我想以编程方式授予本地用户组 <MachineName>\IIS_IUSRS
访问文件夹及其子文件夹的权限。
我当前的代码如下所示:
DirectoryInfo directoryInfo = new DirectoryInfo(path);
DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();
var groupName = Environment.MachineName + @"\IIS_IUSRS";
directorySecurity.AddAccessRule(
new FileSystemAccessRule(groupName,
FileSystemRights.Read,
InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
PropagationFlags.None,
AccessControlType.Allow));
directoryInfo.SetAccessControl(directorySecurity);
但是这是抛出一个System.Security.Principal.IdentityNotMappedException
。将 groupName
替换为 new SecurityIdentifier(WellKnownSidType.WorldSid, null);
的 SID 有效。
我是否需要为团体申请 SecurityIdenfier
?如果需要,我该怎么做?还是我需要为团体做完全不同的事情?
编辑: BUILTIN\IIS_IUSRS
也没有用,因为我在德语语言环境中使用 Windows。
你不需要使用SID,我曾经写过一个工作程序,它使用了"DOMAIN\GroupName"并且运行良好。而不是:
var groupName = Environment.MachineName + @"\IIS_IUSRS";
尝试:
var groupName = @".\IIS_IUSRS";