internal void SetPathList(FileIOPermissionAccess access, AccessControlActions control, string[] pathList, bool checkForDuplicates) { FileIOPermission.VerifyAccess(access); if ((access & FileIOPermissionAccess.Read) != FileIOPermissionAccess.NoAccess) { this.m_read = (FileIOAccess)null; } if ((access & FileIOPermissionAccess.Write) != FileIOPermissionAccess.NoAccess) { this.m_write = (FileIOAccess)null; } if ((access & FileIOPermissionAccess.Append) != FileIOPermissionAccess.NoAccess) { this.m_append = (FileIOAccess)null; } if ((access & FileIOPermissionAccess.PathDiscovery) != FileIOPermissionAccess.NoAccess) { this.m_pathDiscovery = (FileIOAccess)null; } if ((control & AccessControlActions.View) != AccessControlActions.None) { this.m_viewAcl = (FileIOAccess)null; } if ((control & AccessControlActions.Change) != AccessControlActions.None) { this.m_changeAcl = (FileIOAccess)null; } this.m_unrestricted = false; this.AddPathList(access, control, pathList, checkForDuplicates, true, true); }
public FileIOPermission(FileIOPermissionAccess access, AccessControlActions control, string path) { FileIOPermission.VerifyAccess(access); string[] pathListOrig = new string[1] { path }; this.AddPathList(access, control, pathListOrig, false, true, false); }
public string[] GetPathList(FileIOPermissionAccess access) { FileIOPermission.VerifyAccess(access); FileIOPermission.ExclusiveAccess(access); if (FileIOPermission.AccessIsSet(access, FileIOPermissionAccess.Read)) { if (this.m_read == null) { return((string[])null); } return(this.m_read.ToStringArray()); } if (FileIOPermission.AccessIsSet(access, FileIOPermissionAccess.Write)) { if (this.m_write == null) { return((string[])null); } return(this.m_write.ToStringArray()); } if (FileIOPermission.AccessIsSet(access, FileIOPermissionAccess.Append)) { if (this.m_append == null) { return((string[])null); } return(this.m_append.ToStringArray()); } if (!FileIOPermission.AccessIsSet(access, FileIOPermissionAccess.PathDiscovery)) { return((string[])null); } if (this.m_pathDiscovery == null) { return((string[])null); } return(this.m_pathDiscovery.ToStringArray()); }
internal void AddPathList(FileIOPermissionAccess access, AccessControlActions control, string[] pathListOrig, bool checkForDuplicates, bool needFullPath, bool copyPathList) { if (pathListOrig == null) { throw new ArgumentNullException("pathList"); } if (pathListOrig.Length == 0) { throw new ArgumentException(Environment.GetResourceString("Argument_EmptyPath")); } FileIOPermission.VerifyAccess(access); if (this.m_unrestricted) { return; } string[] str = pathListOrig; if (copyPathList) { str = new string[pathListOrig.Length]; Array.Copy((Array)pathListOrig, (Array)str, pathListOrig.Length); } FileIOPermission.CheckIllegalCharacters(str); ArrayList listFromExpressions = StringExpressionSet.CreateListFromExpressions(str, needFullPath); if ((access & FileIOPermissionAccess.Read) != FileIOPermissionAccess.NoAccess) { if (this.m_read == null) { this.m_read = new FileIOAccess(); } this.m_read.AddExpressions(listFromExpressions, checkForDuplicates); } if ((access & FileIOPermissionAccess.Write) != FileIOPermissionAccess.NoAccess) { if (this.m_write == null) { this.m_write = new FileIOAccess(); } this.m_write.AddExpressions(listFromExpressions, checkForDuplicates); } if ((access & FileIOPermissionAccess.Append) != FileIOPermissionAccess.NoAccess) { if (this.m_append == null) { this.m_append = new FileIOAccess(); } this.m_append.AddExpressions(listFromExpressions, checkForDuplicates); } if ((access & FileIOPermissionAccess.PathDiscovery) != FileIOPermissionAccess.NoAccess) { if (this.m_pathDiscovery == null) { this.m_pathDiscovery = new FileIOAccess(true); } this.m_pathDiscovery.AddExpressions(listFromExpressions, checkForDuplicates); } if ((control & AccessControlActions.View) != AccessControlActions.None) { if (this.m_viewAcl == null) { this.m_viewAcl = new FileIOAccess(); } this.m_viewAcl.AddExpressions(listFromExpressions, checkForDuplicates); } if ((control & AccessControlActions.Change) == AccessControlActions.None) { return; } if (this.m_changeAcl == null) { this.m_changeAcl = new FileIOAccess(); } this.m_changeAcl.AddExpressions(listFromExpressions, checkForDuplicates); }
internal FileIOPermission(FileIOPermissionAccess access, AccessControlActions control, string[] pathList, bool checkForDuplicates, bool needFullPath) { FileIOPermission.VerifyAccess(access); this.AddPathList(access, control, pathList, checkForDuplicates, needFullPath, true); }
public FileIOPermission(FileIOPermissionAccess access, string[] pathList) { FileIOPermission.VerifyAccess(access); this.AddPathList(access, pathList, false, true, false); }