Как изменить свойства расшаренной папки? - C#

Узнай цену своей работы

Формулировка задачи:

 DirectoryInfo dInfo = new DirectoryInfo(@"C:\LabsData");
            DirectorySecurity dSecurity = dInfo.GetAccessControl();
            // Add the FileSystemAccessRule to the security settings.   
            dSecurity.AddAccessRule(new FileSystemAccessRule("COMP2\\Все",
                                                             FileSystemRights.FullControl | FileSystemRights.Write,
                                                             AccessControlType.Allow));
            // Set the new access settings.  
            dInfo.SetAccessControl(dSecurity);
ошибку выдает на строчке dSecurity.AddAccessRule(new FileSystemAccessRule("COMP2\\Все", FileSystemRights.FullControl | FileSystemRights.Write, AccessControlType.Allow)); пытаюсь сделать чтобы был полный контроль для всех пользователей. а пишет: Некоторые или ссылки на свойства нельзя преобразовать.
dSecurity.AddAccessRule(new FileSystemAccessRule("Все", FileSystemRights.FullControl , AccessControlType.Allow)); что интересно, так ошибку не выдает - все исполняется. однако результата нет!

Решение задачи: «Как изменить свойства расшаренной папки?»

textual
Листинг программы
 using System.Security.AccessControl;
    using System.IO;
 
    public partial class Form1 : Form
    {
        
 
        public Form1()
        {
            InitializeComponent();
 
            
 
        }
        
        public static void AddFileSecurity(string fileName, string account,
          FileSystemRights rights, AccessControlType controlType)
        {
 
            // Get a FileSecurity object that represents the
            // current security settings.
            FileSecurity fSecurity = File.GetAccessControl(fileName);
 
            // Add the FileSystemAccessRule to the security settings.
            fSecurity.AddAccessRule(new FileSystemAccessRule(account,
                rights, controlType));
 
            // Set the new access settings.
            File.SetAccessControl(fileName, fSecurity);
 
        }
       
 
        private void button1_Click(object sender, EventArgs e)
        {
 
            try
            {
 
                string fileName = @"C:\System Volume Information";
 
                //получаем имя компьютора и пользователя
                System.Security.Principal.WindowsIdentity wi = System.Security.Principal.WindowsIdentity.GetCurrent();
                string user = wi.Name;
 
                // Add the access control entry to the file.
                AddFileSecurity(fileName, @user,
                       // ПОЛНЫЙ ДОСТУП!!!!!!!!
                    FileSystemRights.FullControl, AccessControlType.Allow);
 
 
 
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
 
 
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы