2011-08-25 5 views
2

Voici le code:Impossible d'ajouter des règles d'accès aux WellKnownSidType.WorldSid sur Windows 7

var sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null); 
var directorySecurity = new DirectorySecurity(); 
directorySecurity.AddAccessRule(new FileSystemAccessRule(sid, FileSystemRights.FullControl, AccessControlType.Allow)); 
Directory.CreateDirectory(Path.GetDirectoryName(this.PathToSettings.LocalPath), directorySecurity); 
var fileSecurity = new FileSecurity(); 
fileSecurity.AddAccessRule(new FileSystemAccessRule(sid, FileSystemRights.FullControl, AccessControlType.Allow)); 
using (var fs = new FileStream(this.PathToSettings.LocalPath, FileMode.Create,  FileSystemRights.FullControl, FileShare.None, 1024, FileOptions.None, fileSecurity)) 
{ 
    var bytes = Encoding.UTF8.GetBytes(Resources.DefaultSettings); 
    fs.Write(bytes, 0, bytes.Length); 
} 

Le problème: sur Windows 7 ces règles d'accès ne s'applique pas au dossier (je ne vois pas le groupe Everyone sur Security page de la boîte de dialogue des propriétés du fichier.

Je veux autoriser l'accès au fichier spécifié pour tout le monde (admins, utilisateurs, peu importe).

Qu'est-ce que je fais mal?

+0

Je sais que c'est vieux, mais la toute première ligne de votre question a répondu à la mienne. Je vous remercie. – Thumper

Répondre

0

Le problème était dans une classe qui enregistre les paramètres - il supprime l'ancien fichier et crée un nouveau (en utilisant les règles de sécurité par défaut). Très stupide, je ne sais pas pourquoi quelqu'un a écrit un tel code.

Questions connexes