Permissions NTFS et Directory.SetAccesControl

Nixeus Messages postés 192 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 19 octobre 2020 - 29 juil. 2008 à 16:20
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 - 2 août 2008 à 11:26
Bonjour à tous,

Je travail sur un "patcheur" de fichier !
J'ai besoin, pour un répertoir donné, d'enlever tous les fichiers et directory qu'il contient en ReadOnly, afin de tout pouvoir patcher et supprimer sans problème !

J'ai donc vu que .Net proposais ceci :  Directory.SetAccesControl

Voici ce que me fournie la MSDN :

publicstaticvoid AddDirectorySecurity(string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType)
        {
            // Create a new DirectoryInfo object.
            DirectoryInfo dInfo = new DirectoryInfo(FileName);

            // Get a DirectorySecurity object that represents the
            // current security settings.
            DirectorySecurity dSecurity = dInfo.GetAccessControl();

            // Add the FileSystemAccessRule to the security settings.
            dSecurity.AddAccessRule(new FileSystemAccessRule(Account,
                                                            Rights,
                                                            ControlType));

            // Set the new access settings.
            dInfo.SetAccessControl(dSecurity);

        }

Donc il suffit d'utiliser ceci :

 AddDirectorySecurity(DirectoryName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AccessControlType.Allow);

Ma question est à propos de MYDOMAIN\MyAccount : Comment faire cela en dynamique ( l'utilisateur sur lequel je suis connecté )

Existe il une variable d'environnement ?

Je suis un peu perdu !

Merci à vous en tout cas!

Bonne après midi !

Fabio

Nixeus'

1 réponse

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
2 août 2008 à 11:26
salut,

il y a plusieurs moyens pour récupérer le nom de l'utilisateur Windows en cours :
-> Environment.UserName
-> System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString()
-> l'api GetUserName

autre chose : ReadOnly n'est pas dans sa définition "normale" une permission NTFS mais un attribut du fichier. Voir les classes File et Directory et leur méthode SetAttributes

ShareVB
0
Rejoignez-nous