public NtStatus GetFileSecurity(string fileName, out FileSystemSecurity security, AccessControlSections sections, DokanFileInfo info) { var cmisPath = fileName.Replace("\\", "/"); ICmisObject cmisObject = (IDocument)cmisSession.GetObjectByPath(cmisPath); try { // TODO //security = info.IsDirectory // ? (FileSystemSecurity)Directory.GetAccessControl("TODO GetPath(fileName)") // : File.GetAccessControl("TODO GetPath(fileName)"); if (cmisObject is IFolder) { //security = new System.Security.AccessControl.DirectorySecurity(); //security.AccessRightType = new AccessRig security = Directory.GetAccessControl(Constants.TEMPLATE_FOLDER); // TODO create from scratch rather than using a template } else { security = File.GetAccessControl(Constants.TEMPLATE_FILE); // TODO create from scratch rather than using a template } return(Trace("GetFileSecurity", fileName, info, DokanResult.Success, sections.ToString())); } catch (UnauthorizedAccessException) { security = null; return(Trace("GetFileSecurity", fileName, info, DokanResult.AccessDenied, sections.ToString())); } }
public NtStatus GetFileSecurity(string fileName, out FileSystemSecurity security, AccessControlSections sections, DokanFileInfo info) { try { security = info.IsDirectory ? (FileSystemSecurity)Directory.GetAccessControl(GetPath(fileName)) : File.GetAccessControl(GetPath(fileName)); return(Trace("GetFileSecurity", fileName, info, DokanResult.Success, sections.ToString())); } catch (UnauthorizedAccessException) { security = null; return(Trace("GetFileSecurity", fileName, info, DokanResult.AccessDenied, sections.ToString())); } }
public NtStatus SetFileSecurity(string fileName, FileSystemSecurity security, AccessControlSections sections, DokanFileInfo info) { try { if (info.IsDirectory) { Directory.SetAccessControl(GetPath(fileName), (DirectorySecurity)security); } else { File.SetAccessControl(GetPath(fileName), (FileSecurity)security); } return(Trace("SetFileSecurity", fileName, info, DokanResult.Success, sections.ToString())); } catch (UnauthorizedAccessException) { return(Trace("SetFileSecurity", fileName, info, DokanResult.AccessDenied, sections.ToString())); } }
public NtStatus SetFileSecurity(string fileName, FileSystemSecurity security, AccessControlSections sections, DokanFileInfo info) { try { if (info.IsDirectory) { Directory.SetAccessControl(GetPath(fileName), (DirectorySecurity)security); } else { File.SetAccessControl(GetPath(fileName), (FileSecurity)security); } return Trace("SetFileSecurity", fileName, info, DokanResult.Success, sections.ToString()); } catch (UnauthorizedAccessException) { return Trace("SetFileSecurity", fileName, info, DokanResult.AccessDenied, sections.ToString()); } }
public NtStatus GetFileSecurity(string fileName, out FileSystemSecurity security, AccessControlSections sections, DokanFileInfo info) { try { security = info.IsDirectory ? (FileSystemSecurity)Directory.GetAccessControl(GetPath(fileName)) : File.GetAccessControl(GetPath(fileName)); return Trace("GetFileSecurity", fileName, info, DokanResult.Success, sections.ToString()); } catch (UnauthorizedAccessException) { security = null; return Trace("GetFileSecurity", fileName, info, DokanResult.AccessDenied, sections.ToString()); } }
public NtStatus SetFileSecurity(string fileName, FileSystemSecurity security, AccessControlSections sections, DokanFileInfo info) { #if !NETCOREAPP1_0 try { if (info.IsDirectory) { Directory.SetAccessControl(GetPath(fileName), (DirectorySecurity)security); } else { File.SetAccessControl(GetPath(fileName), (FileSecurity)security); } return(Trace(nameof(SetFileSecurity), fileName, info, DokanResult.Success, sections.ToString())); } catch (UnauthorizedAccessException) { return(Trace(nameof(SetFileSecurity), fileName, info, DokanResult.AccessDenied, sections.ToString())); } #else // .NET Core 1.0 do not have support for Directory.SetAccessControl return(NtStatus.NotImplemented); #endif }
public NtStatus GetFileSecurity(string fileName, out FileSystemSecurity security, AccessControlSections sections, DokanFileInfo info) { #if !NETCOREAPP1_0 try { security = info.IsDirectory ? (FileSystemSecurity)Directory.GetAccessControl(GetPath(fileName)) : File.GetAccessControl(GetPath(fileName)); return(Trace(nameof(GetFileSecurity), fileName, info, DokanResult.Success, sections.ToString())); } catch (UnauthorizedAccessException) { security = null; return(Trace(nameof(GetFileSecurity), fileName, info, DokanResult.AccessDenied, sections.ToString())); } #else // .NET Core 1.0 do not have support for Directory.GetAccessControl security = null; return(NtStatus.NotImplemented); #endif }
public NtStatus SetFileSecurity(string fileName, FileSystemSecurity security, AccessControlSections sections, DokanFileInfo info) => AsDebug(nameof(SetFileAttributes), fileName, info, DokanResult.NotImplemented, sections.ToString());
public NtStatus GetFileSecurity(string fileName, out FileSystemSecurity security, AccessControlSections sections, DokanFileInfo info) { try { //get user SecurityIdentifier identity = WindowsIdentity.GetCurrent().Owner; //check if file is directory or not and set appropriate security method security = !info.IsDirectory ? (FileSystemSecurity) new FileSecurity() : new DirectorySecurity(); //add access rule for full control (maybe make read only in future) security.SetAccessRule(new FileSystemAccessRule(identity, FileSystemRights.FullControl, AccessControlType.Allow)); //disable protection and preserve inheritance security.SetAccessRuleProtection(false, true); //done return(Trace(nameof(GetFileSecurity), fileName, info, DokanResult.Success, sections.ToString())); } catch (UnauthorizedAccessException) { security = null; return(Trace(nameof(GetFileSecurity), fileName, info, DokanResult.AccessDenied, sections.ToString())); } }
public NtStatus GetFileSecurity(string fileName, out FileSystemSecurity security, AccessControlSections sections, DokanFileInfo info) { try { security = new FileSecurity(); return Trace(nameof(GetFileSecurity), fileName, info, DokanResult.Success, sections.ToString()); //security = null; //return NtStatus.NotImplemented; } catch (UnauthorizedAccessException) { security = null; return Trace(nameof(GetFileSecurity), fileName, info, DokanResult.AccessDenied, sections.ToString()); } }
public NtStatus SetFileSecurity(string fileName, FileSystemSecurity security, AccessControlSections sections, IDokanFileInfo info) { return(Trace("SetFileSecurity", fileName, info, DokanResult.NotImplemented, sections.ToString())); }
public NtStatus SetFileSecurity(string fileName, FileSystemSecurity security, AccessControlSections sections, DokanFileInfo info) { try { if (info.IsDirectory) { Directory.SetAccessControl(this.method_6(fileName), (DirectorySecurity)security); } else { File.SetAccessControl(this.method_6(fileName), (FileSecurity)security); } return(this.method_8(nameof(SetFileSecurity), fileName, info, NtStatus.Success, (object)sections.ToString())); } catch (UnauthorizedAccessException ex) { return(this.method_8(nameof(SetFileSecurity), fileName, info, NtStatus.AccessDenied, (object)sections.ToString())); } }
public NtStatus SetFileSecurity(string fileName, FileSystemSecurity security, AccessControlSections sections, DokanFileInfo info) { return Trace(nameof(SetFileAttributes), fileName, info, DokanResult.NotImplemented, sections.ToString()); }