public override IPermission Union(IPermission other) { EnvironmentPermission ep = Cast(other); if (ep == null) { return(Copy()); } if (IsUnrestricted() || ep.IsUnrestricted()) { return(new EnvironmentPermission(PermissionState.Unrestricted)); } if (IsEmpty() && ep.IsEmpty()) { return(null); } EnvironmentPermission result = (EnvironmentPermission)Copy(); string path = ep.GetPathList(EnvironmentPermissionAccess.Read); if (path != null) { result.AddPathList(EnvironmentPermissionAccess.Read, path); } path = ep.GetPathList(EnvironmentPermissionAccess.Write); if (path != null) { result.AddPathList(EnvironmentPermissionAccess.Write, path); } return(result); }
/// <summary>Creates a permission that is the union of the current permission and the specified permission.</summary> /// <returns>A new permission that represents the union of the current permission and the specified permission.</returns> /// <param name="other">A permission to combine with the current permission. It must be of the same type as the current permission. </param> /// <exception cref="T:System.ArgumentException">The <paramref name="other" /> parameter is not null and is not of the same type as the current permission. </exception> public override IPermission Union(IPermission other) { EnvironmentPermission environmentPermission = this.Cast(other); if (environmentPermission == null) { return(this.Copy()); } if (this.IsUnrestricted() || environmentPermission.IsUnrestricted()) { return(new EnvironmentPermission(PermissionState.Unrestricted)); } if (this.IsEmpty() && environmentPermission.IsEmpty()) { return(null); } EnvironmentPermission environmentPermission2 = (EnvironmentPermission)this.Copy(); string pathList = environmentPermission.GetPathList(EnvironmentPermissionAccess.Read); if (pathList != null) { environmentPermission2.AddPathList(EnvironmentPermissionAccess.Read, pathList); } pathList = environmentPermission.GetPathList(EnvironmentPermissionAccess.Write); if (pathList != null) { environmentPermission2.AddPathList(EnvironmentPermissionAccess.Write, pathList); } return(environmentPermission2); }
/// <summary>Creates and returns a permission that is the intersection of the current permission and the specified permission.</summary> /// <returns>A new permission that represents the intersection of the current permission and the specified permission. This new permission is null if the intersection is empty.</returns> /// <param name="target">A permission to intersect with the current permission. It must be of the same type as the current permission. </param> /// <exception cref="T:System.ArgumentException">The <paramref name="target" /> parameter is not null and is not of the same type as the current permission. </exception> public override IPermission Intersect(IPermission target) { EnvironmentPermission environmentPermission = this.Cast(target); if (environmentPermission == null) { return(null); } if (this.IsUnrestricted()) { return(environmentPermission.Copy()); } if (environmentPermission.IsUnrestricted()) { return(this.Copy()); } int num = 0; EnvironmentPermission environmentPermission2 = new EnvironmentPermission(PermissionState.None); string pathList = environmentPermission.GetPathList(EnvironmentPermissionAccess.Read); if (pathList != null) { string[] array = pathList.Split(new char[] { ';' }); foreach (string text in array) { if (this.readList.Contains(text)) { environmentPermission2.AddPathList(EnvironmentPermissionAccess.Read, text); num++; } } } string pathList2 = environmentPermission.GetPathList(EnvironmentPermissionAccess.Write); if (pathList2 != null) { string[] array3 = pathList2.Split(new char[] { ';' }); foreach (string text2 in array3) { if (this.writeList.Contains(text2)) { environmentPermission2.AddPathList(EnvironmentPermissionAccess.Write, text2); num++; } } } return((num <= 0) ? null : environmentPermission2); }
public override IPermission Intersect(IPermission target) { EnvironmentPermission ep = Cast(target); if (ep == null) { return(null); } if (IsUnrestricted()) { return(ep.Copy()); } if (ep.IsUnrestricted()) { return(Copy()); } int n = 0; EnvironmentPermission result = new EnvironmentPermission(PermissionState.None); string readTarget = ep.GetPathList(EnvironmentPermissionAccess.Read); if (readTarget != null) { string[] targets = readTarget.Split(';'); foreach (string t in targets) { if (readList.Contains(t)) { result.AddPathList(EnvironmentPermissionAccess.Read, t); n++; } } } string writeTarget = ep.GetPathList(EnvironmentPermissionAccess.Write); if (writeTarget != null) { string[] targets = writeTarget.Split(';'); foreach (string t in targets) { if (writeList.Contains(t)) { result.AddPathList(EnvironmentPermissionAccess.Write, t); n++; } } } return((n > 0) ? result : null); }
public void FromXml () { EnvironmentPermission ep = new EnvironmentPermission (PermissionState.None); SecurityElement se = ep.ToXml (); AssertNotNull ("ToXml()", se); ep.FromXml (se); se.AddAttribute ("Read", envVariables); ep.FromXml (se); AssertEquals ("FromXml-Read", envVariables, ep.GetPathList (EnvironmentPermissionAccess.Read)); se.AddAttribute ("Write", envVariables); ep.FromXml (se); AssertEquals ("FromXml-Read", envVariables, ep.GetPathList (EnvironmentPermissionAccess.Read)); AssertEquals ("FromXml-Write", envVariables, ep.GetPathList (EnvironmentPermissionAccess.Write)); }
public void GetPathList () { EnvironmentPermission ep = new EnvironmentPermission (PermissionState.None); #if NET_2_0 AssertEquals ("GetPathList-Read-Empty", String.Empty, ep.GetPathList (EnvironmentPermissionAccess.Read)); AssertEquals ("GetPathList-Write-Empty", String.Empty, ep.GetPathList (EnvironmentPermissionAccess.Write)); #else AssertNull ("GetPathList-Read-Empty", ep.GetPathList (EnvironmentPermissionAccess.Read)); AssertNull ("GetPathList-Write-Empty", ep.GetPathList (EnvironmentPermissionAccess.Write)); #endif ep.AddPathList (EnvironmentPermissionAccess.Read, "UID"); ep.AddPathList (EnvironmentPermissionAccess.Write, "PROMPT"); AssertEquals ("GetPathList-Read", "UID", ep.GetPathList (EnvironmentPermissionAccess.Read)); AssertEquals ("GetPathList-Write", "PROMPT", ep.GetPathList (EnvironmentPermissionAccess.Write)); }
public void GetPathListNoAccess () { EnvironmentPermission ep = new EnvironmentPermission (PermissionState.None); ep.AddPathList (EnvironmentPermissionAccess.Read, "UID"); ep.AddPathList (EnvironmentPermissionAccess.Write, "PROMPT"); AssertEquals ("GetPathList-NoAccess", "", ep.GetPathList (EnvironmentPermissionAccess.NoAccess)); }
private static string GetEnvironmentPermission (EnvironmentPermission ep) { if (ep.IsUnrestricted ()) return " EnvironmentPermission - Unrestricted\\l"; StringBuilder sb = new StringBuilder (" EnvironmentPermission\\l"); string s = ep.GetPathList (EnvironmentPermissionAccess.Read); if ((s != null) && (s.Length > 0)) sb.AppendFormat (" Read: {0}\\l", s); s = ep.GetPathList (EnvironmentPermissionAccess.Write); if ((s != null) && (s.Length > 0)) sb.AppendFormat (" Write: {0}\\l", s); return sb.ToString (); }
public void GetPathListAllAccess () { EnvironmentPermission ep = new EnvironmentPermission (PermissionState.None); ep.AddPathList (EnvironmentPermissionAccess.Read, "UID"); ep.AddPathList (EnvironmentPermissionAccess.Write, "PROMPT"); Assert.AreEqual ("", ep.GetPathList (EnvironmentPermissionAccess.AllAccess), "GetPathList-AllAccess"); }
public void GetPathList () { EnvironmentPermission ep = new EnvironmentPermission (PermissionState.None); Assert.AreEqual (String.Empty, ep.GetPathList (EnvironmentPermissionAccess.Read), "GetPathList-Read-Empty"); Assert.AreEqual (String.Empty, ep.GetPathList (EnvironmentPermissionAccess.Write), "GetPathList-Write-Empty"); ep.AddPathList (EnvironmentPermissionAccess.Read, "UID"); ep.AddPathList (EnvironmentPermissionAccess.Write, "PROMPT"); Assert.AreEqual ("UID", ep.GetPathList (EnvironmentPermissionAccess.Read), "GetPathList-Read"); Assert.AreEqual ("PROMPT", ep.GetPathList (EnvironmentPermissionAccess.Write), "GetPathList-Write"); }