2010-07-12 3 views
2

Je crée un FileSecurity pour la création de fichiers qui devrait avoir un accès en écriture également pour les processus à faible intégrité.Ajout d'un accès en écriture pour les processus à faible intégrité sous .Net

FileSecurity fileAcl = new FileSecurity(); 

// add everyone 
IdentityReference sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null); 
FileSystemAccessRule rule = new FileSystemAccessRule(sid, FileSystemRights.FullControl, AccessControlType.Allow); 
fileAcl.AddAccessRule(rule); 

// add restricted 
sid = new SecurityIdentifier(WellKnownSidType.RestrictedCodeSid, null); 
rule = new FileSystemAccessRule(sid, FileSystemRights.FullControl, AccessControlType.Allow); 
fileAcl.AddAccessRule(rule); 

// add low integrity level rights 

// ??? 

Si quelqu'un sait comment le faire sans invoquer l'API C Je vous serais reconnaissant, sinon je vais devoir retravailler l'utiliser entièrement.

Merci à l'avance

+0

Avez-vous obtenu n'importe où avec ce code .NET? J'aimerais aussi pouvoir créer des dossiers/fichiers inscriptibles de faible intégrité à partir du code .net. – Rory

+0

J'ai fait de la colle C pour faire ça pour moi. – Yakeen

+0

@Yankeen, pouvez-vous partager un échantillon ou me pointer quelque part avec un exemple c pour cela? Merci! – Rory

Répondre

0

Je ne sais pas si elles sont exposées dans .NET, mais le integrity levels themselves are also well-known SIDs. Vous devriez également lire le Mandatory Integrity Control documentation pour comprendre comment les utiliser.

+0

Salut Luke, les sids sont connus, mais les labels d'intégrité font partie de sacl, donc ne peut pas utiliser l'API exposée par MS qui offre d'ajouter des identités analysées à dacl. J'ai besoin de la représentation binaire de acl donc plus je pense à cela, mieux serait de l'inclure en tant que tableau créé dans l'application C au lieu de le créer dans .net. – Yakeen

Questions connexes