Example #1
0
        private void btnUnlock_Click(object sender, EventArgs e)
        {
            try
            {
                string pword  = txtPword.Text;
                string rpword = Settings.Default["pWord"].ToString();
                bool   match  = false;
                match = pword.Equals(rpword);
                if (match == true)
                {
                    try
                    {
                        string            admin = Environment.UserName;
                        DirectorySecurity ds    = Directory.GetAccessControl(pth);

                        FileSystemAccessRule fs = new FileSystemAccessRule(admin, FileSystemRights.FullControl, AccessControlType.Allow);
                        ds.ResetAccessRule(fs);
                        Directory.SetAccessControl(pth, ds);
                        MessageBox.Show("Folder is unlocked!", "Success");
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Error while unlocking", "Error!");
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Wrong Password", "Error!");
            }
        }
        /// <summary>
        /// Create Directory Permissions that allow universal access
        /// </summary>
        /// <returns>Directory Permissions that allow universal access</returns>
        public static DirectorySecurity CreateDirectoryPermissions()
        {
            DirectorySecurity security       = new DirectorySecurity();
            FileSystemRights  directoryFlags = FileSystemRights.ReadData | FileSystemRights.WriteData | FileSystemRights.AppendData | FileSystemRights.ReadExtendedAttributes | FileSystemRights.WriteExtendedAttributes | FileSystemRights.ExecuteFile | FileSystemRights.DeleteSubdirectoriesAndFiles | FileSystemRights.ReadAttributes | FileSystemRights.WriteAttributes | FileSystemRights.Delete | FileSystemRights.ReadPermissions | FileSystemRights.ChangePermissions | FileSystemRights.TakeOwnership | FileSystemRights.Synchronize | FileSystemRights.FullControl;

            FileSystemAccessRule accRule = new FileSystemAccessRule("SYSTEM", directoryFlags, InheritanceFlags.None, PropagationFlags.InheritOnly, AccessControlType.Allow);

            security.ResetAccessRule(accRule);

            return(security);
        }
Example #3
0
        //판자식 보호 해제(타겟 문서의 폴더 경로 ) : 폴더경로를 가져와 보호한것 모두 해제
        public void panja_recover(string target_folder_dir)
        {
            //접근 제어 리스트
            //  모든 권한 -> 허용
            DirectorySecurity dSecurity = Directory.GetAccessControl(target_folder_dir);

            dSecurity.ResetAccessRule((new FileSystemAccessRule(
                                           cur_user,
                                           FileSystemRights.FullControl,
                                           AccessControlType.Allow)));

            Directory.SetAccessControl(target_folder_dir, dSecurity);
        }
 internal static void SetDirectoryAccess(string directoryPathString)
 {
     string everyoneString;
     if (OSLanguage.Equals("en-US"))
         everyoneString = "Everyone";
     else
         everyoneString = "Tout le monde";
     //sets the directory access permissions for everyone
     DirectorySecurity fileSecurity = Directory.GetAccessControl(directoryPathString);
     //creates the access rule for directory
     fileSecurity.ResetAccessRule(new FileSystemAccessRule(everyoneString, FileSystemRights.FullControl, AccessControlType.Allow));
     //sets the access rules for directory
     Directory.SetAccessControl(directoryPathString, fileSecurity);
 }
Example #5
0
        public static Boolean ReplaceDirectorySecurity(string dir, string[] Account, FileSystemRights Rights, AccessControlType ControlType, InheritanceFlags Inherit, PropagationFlags Propagation)
        {
            DirectoryInfo     dInfo     = new DirectoryInfo(dir);
            DirectorySecurity dSecurity = new DirectorySecurity();

            try
            {
                dSecurity.SetAccessRuleProtection(true, false);
                foreach (string account in Account)
                {
                    dSecurity.ResetAccessRule(new FileSystemAccessRule(account, Rights, Inherit, Propagation, ControlType));
                }
                dInfo.SetAccessControl(dSecurity);
            }
            catch (Exception ex)
            {
                LibraryLogging.Error("unable to ReplaceDirectorySecurity for {0} error {1}", dir, ex.Message);
                return(false);
            }

            return(true);
        }