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); }
//판자식 보호 해제(타겟 문서의 폴더 경로 ) : 폴더경로를 가져와 보호한것 모두 해제 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); }
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); }