Comment établir le dossier d'autorisation
Comment puis-je créer/modifier/ajouter des permissions de dossier à dossier spécifique? Il y a un dossier appelé "test" dans le disque local C. Comment puis-je définir des autorisations sur ce dossier à l'aide de C#?
J'ai écrit un code déjà:
public void getusers()
{
SelectQuery squery = new SelectQuery("Win32_UserAccount", "Domain='" + System.Environment.UserDomainName.ToString() + "'");
try
{
ManagementObjectSearcher msearchar = new ManagementObjectSearcher(squery);
foreach (ManagementObject mobject in msearchar.Get())
{
comboBox1.Items.Add(mobject["Name"]);
}
}
catch (Exception e) { MessageBox.Show(e.ToString()); }
}
private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.ShowDialog();
textBox1.Text = fbd.SelectedPath.ToString();
}
private void button2_Click(object sender, EventArgs e)
{
DirectoryInfo myDirectoryInfo = new DirectoryInfo(textBox1.Text);
DirectorySecurity myDirectorySecurity = myDirectoryInfo.GetAccessControl();
string User = System.Environment.UserDomainName + "\\" + comboBox1.SelectedItem.ToString();
myDirectorySecurity.AddAccessRule(new FileSystemAccessRule(User, FileSystemRights.FullControl, InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow));
//myDirectorySecurity.AddAccessRule(new FileSystemAccessRule(User, FileSystemRights.Write, InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow));
myDirectoryInfo.SetAccessControl(myDirectorySecurity);
MessageBox.Show("Permissions Altered Successfully" + User);
}
Ce code déjà avec l'ajout de l'Utilisateur dans le dossier, mais le permissionIi ensemble de ce dossier n'est pas héréditaire à tous. Ai-je raté quelque chose? Ou quelqu'un pourrait-il me guider comment faire pour hériter la permission de ce dossier?
- Merci de ne pas le préfixe de vos titres avec "C# ", par exemple. C'est ce que les balises sont pour.
InformationsquelleAutor user1201145 | 2012-02-10
Vous devez vous connecter pour publier un commentaire.
Si hérité par vous dire que tous les objets enfants reçoivent les mêmes autorisations, vous devez configurer votre PropagationFlags à InheritOnly. En outre, si vous souhaitez que vos fichiers afin de correspondre à la permission de la base de règles, changer votre InheritanceFlags à ObjectInherit. essayez d'utiliser cette ligne ci-dessous.
Il me semble que vous êtes passé à côté de ce drapeau, qui que vous vous joindrez à l'aide de l'opérateur au niveau du bit dans votre liste de paramètres:
InheritanceFlags.ObjectInherit
Il y a plus de détails, y compris un lien vers une feuille de calcul Google, avec une matrice d'autorisations et les paramètres, dans ce fil:
Réglage de l'Héritage et de la Propagation des drapeaux avec un set-acl et powershell
Espère que cela aide...