Avatar billede mmcduck Nybegynder
22. juli 2008 - 08:12 Der er 1 kommentar

Filrettigheder og alligevel ikke (FileSystemAccessRule)

Hej
Jeg sidder og er i gang med at ændre nogle rettigheder på en mappe, men det lykkedes ikke helt.
Som der står i titlen, bruger jeg FileSystemAccessRule objektet, hvor jeg definere gruppen, rettigheder med mere, men det eneste der bliver gemt er at den nye gruppe er vist i listen over brugere og grupper.
FileSystemRights.Modify bliver slet ikke skrevet til gruppen.
Er der nogen der kan give en hjælpende hånd til en der er ved at få grå hår?

code:
DirectoryInfo dInfo = new DirectoryInfo(dst.FullName);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(
                    @"ANL_ALLE_W",
                    FileSystemRights.Modify,
                    InheritanceFlags.ObjectInherit,
                    PropagationFlags.InheritOnly,
                    AccessControlType.Allow));
dInfo.SetAccessControl(dSecurity);

Jeg har også prøvet den simple udgave uden held:
DirectoryInfo dInfo = new DirectoryInfo(dst.FullName);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(
                    @"ANL_ALLE_W",
                    FileSystemRights.Modify,
                    AccessControlType.Allow));
dInfo.SetAccessControl(dSecurity);
Avatar billede stevedale Nybegynder
13. november 2008 - 20:49 #1
Den skal ser sådan ud med f.eks @"C:\Test" og SID'en af brugeren som parameter

//*****************************************************************************************
        public static bool GiveWritePermissions(string path, SecurityIdentifier sidName)
        {
            bool result = false;
            try
            {
                AddDirectorySecurity(path, sidName,
                                        FileSystemRights.Modify,
                                        InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
                                        PropagationFlags.None,
                                        AccessControlType.Allow);
            }
            catch
            {
            }
            return result;
        }
        //*****************************************************************************************
        //*****************************************************************************************
        public static void AddDirectorySecurity(string path,
                                            SecurityIdentifier Account,
                                            FileSystemRights Rights,
                                            InheritanceFlags Inheritance,
                                            PropagationFlags Propagation,
                                            AccessControlType ControlType)
        {
            try
            {
                DirectoryInfo dInfo = new DirectoryInfo(path);
                DirectorySecurity dSecurity = dInfo.GetAccessControl();
                dSecurity.AddAccessRule(new FileSystemAccessRule(Account,
                                                                Rights,
                                                                Inheritance,
                                                                Propagation,
                                                                ControlType));
                dInfo.SetAccessControl(dSecurity);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester