以编程方式获取Windows 2003中文件夹的groups-users-permissions特殊权限列表

Kiq*_*net 7 c# security permissions ntfs

我使用Window 2003服务器,我需要以编程方式使用C#获取有关安全性文件夹的信息.

我想创建一个检查权限的工具.我需要获取文件夹的组,用户,权限和特殊权限,

C:\ Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys

编辑:

以下是GetSecurityDescriptorSddlForm方法的示例代码.

public static string GetObjectPermission(string fullFolderName)
{
    FileSecurity fileSecure = File.GetAccessControl(fullFolderName);
    StringBuilder acer = new StringBuilder();
    fileSecure.GetSecurityDescriptorSddlForm(AccessControlSections.All);

    foreach (FileSystemAccessRule ace in fileSecure.GetAccessRules(true, true, typeof(NTAccount)))
    {
        acer.Append(ace.FileSystemRights + ":" + ' ' + ace.IdentityReference.Value + "\n");
    }
    return acer.ToString();
}
Run Code Online (Sandbox Code Playgroud)

此示例代码将显示哪些NTAccount可以修改或读取该文件夹,例如此函数.

我怎样才能获得组和特殊权限?

任何示例代码,建议?

Bil*_*one 3

您可以使用 DirectoryInfo 来获取 ACL 吗?所有 ACL 都应该在那里(用户、组):

        // Create a new DirectoryInfo object.
        DirectoryInfo dInfo = new DirectoryInfo(FileName);

        // Get a DirectorySecurity object that represents the  
        // current security settings.
        DirectorySecurity dSecurity = dInfo.GetAccessControl();
Run Code Online (Sandbox Code Playgroud)

完整文档: http://msdn.microsoft.com/en-us/library/c1f66bc2 (v=vs.110).aspx