Click here to Skip to main content
15,879,065 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi,

I'm using the following code to restrict a folder in c#, but can't grant permission to access the folder. Can anyone help me please?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Security.AccessControl;
using System.Management;
using System.Management.Instrumentation;
using System.Windows.Forms;

namespace PermissionToFolder
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            getusers();
        }

        public void getusers()
        {
            SelectQuery squery = new SelectQuery("Win32_UserAccount", "Domain='"+ System.Environment.UserDomainName.ToString() + "'");
            try
            {
                ManagementObjectSearcher msearchar = new ManagementObjectSearcher(squery);
                //ManagementObject mobject = new ManagementObject();
                foreach (ManagementObject mobject in msearchar.Get())
                {
                    cmbPermission.Items.Add(mobject["Name"]);
                }
            }
            catch (Exception e) { MessageBox.Show(e.ToString()); }
        }

        private void btnDirectory_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            fbd.ShowDialog();
            txtDirectory.Text = fbd.SelectedPath.ToString();
        }

        private void btnPermission_Click(object sender, EventArgs e)
        {
            DirectoryInfo myDirectoryInfo = new DirectoryInfo(txtDirectory.Text);

            DirectorySecurity myDirectorySecurity = myDirectoryInfo.GetAccessControl();
            string User = System.Environment.UserDomainName + "\\" + cmbPermission.SelectedItem.ToString();
            myDirectorySecurity.AddAccessRule(new FileSystemAccessRule(User, FileSystemRights.Read, AccessControlType.Deny));
            myDirectoryInfo.SetAccessControl(myDirectorySecurity);
            MessageBox.Show("Permissions Altered Successfully" + User);
        }
    }
}
Posted
Updated 24-Dec-10 4:52am
v2
Comments
JF2015 24-Dec-10 10:53am    
Edited to add code formatting.

1 solution

Try running your app as administrator.

 
Share this answer
 
v2
Comments
fjdiewornncalwe 24-Dec-10 11:40am    
Good answer, John, good answer!!! (In a Family Feud style response)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900