C#特权问题从以本地系统帐户运行的Windows服务创建文件夹

本文关键字:运行 Windows 服务 文件夹 创建 系统 问题 特权 | 更新日期: 2023-09-27 18:27:54

我有一个作为本地系统运行的服务。我正在从该服务创建一些文件夹。创建的这些文件夹不允许windows 7中"用户"组中的用户进行写访问。

我如何创建这些授予每个人写访问权限的文件夹?

C#特权问题从以本地系统帐户运行的Windows服务创建文件夹

您可以使用我在这个示例中找到的逻辑

public class Permissions
{
    public void addPermissions(string dirName, string username)
    {
        changePermissions(dirName, username, AccessControlType.Allow);
    }
    public void revokePermissions(string dirName, string username)
    {
        changePermissions(dirName, username, AccessControlType.Deny);
    }
    private void changePermissions(string dirName, string username, AccessControlType newPermission)
    {
        DirectoryInfo myDirectoryInfo = new DirectoryInfo(dirName);
        DirectorySecurity myDirectorySecurity = myDirectoryInfo.GetAccessControl();
        string user = System.Environment.UserDomainName + "''" + username;
        myDirectorySecurity.AddAccessRule(new FileSystemAccessRule(
            user, 
            FileSystemRights.Read | FileSystemRights.Write | FileSystemRights.ExecuteFile | FileSystemRights.Delete, 
            InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, 
            PropagationFlags.InheritOnly, 
            newPermission
        ));
        myDirectoryInfo.SetAccessControl(myDirectorySecurity);
    }
}

我还发现这篇文章有其他例子

http://www.c-sharpcorner.com/uploadfile/babu_2082/adding-groups-user-names-and-permissions-for-a-directory-in-C-Sharp/