2013-08-16 4 views
0

У меня есть служба, работающая как локальная система. Я создаю несколько папок из службы. Эти папки созданы, которые не дают людям в группе «Пользователи» в Windows 7 для записи.C# Привилегия, создающая папки из службы Windows, работающей под учетной записью Local System.

Как создать эти папки, которые предоставляют каждому доступ для записи?

ответ

0

Вы можете использовать логику, которую я нашел в этом примере

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/