public void IsSubset_Null() { SecurityPermission sp = new SecurityPermission(PermissionState.None); Assert.IsTrue(sp.IsSubsetOf(null), "NoFlags"); foreach (SecurityPermissionFlag spf in AllFlagsExceptNoFlags) { sp.Flags = spf; Assert.IsFalse(sp.IsSubsetOf(null), spf.ToString()); } }
public void IsSubset_Self() { SecurityPermission sp = new SecurityPermission(PermissionState.None); foreach (SecurityPermissionFlag spf in AllFlags) { sp.Flags = spf; SecurityPermission result = (SecurityPermission)sp.Intersect(sp); Assert.IsTrue(sp.IsSubsetOf(sp), spf.ToString()); } }
public void IsSubset_Unrestricted() { // IsSubset with unrestricted // a. source (this) is unrestricted -> target is never a subset SecurityPermission sp1 = new SecurityPermission(PermissionState.Unrestricted); SecurityPermission sp2 = new SecurityPermission(PermissionState.None); foreach (SecurityPermissionFlag spf in AllFlagsExceptAllFlags) { sp2.Flags = spf; Assert.IsFalse(sp1.IsSubsetOf(sp2), "target " + spf.ToString()); } // exception of AllFlags sp2.Flags = SecurityPermissionFlag.AllFlags; Assert.IsTrue(sp1.IsSubsetOf(sp2), "target AllFlags"); // b. destination (target) is unrestricted -> target is always a subset foreach (SecurityPermissionFlag spf in AllFlags) { sp2.Flags = spf; Assert.IsTrue(sp2.IsSubsetOf(sp1), "source " + spf.ToString()); } }
public static void SecurityPermissionCallMethods() { SecurityPermission sp = new SecurityPermission(new Permissions.PermissionState()); SecurityPermission sp2 = new SecurityPermission(new Permissions.SecurityPermissionFlag()); IPermission ip = sp.Copy(); IPermission ip2 = sp.Intersect(ip); bool testbool = sp.IsSubsetOf(ip); testbool = sp.IsUnrestricted(); ip2 = sp.Union(ip); SecurityElement se = new SecurityElement(""); sp.FromXml(se); se = sp.ToXml(); }
public static PermissionSet ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, out PermissionSet denied) { PermissionSet resolved = ResolvePolicy(evidence); // do we have the minimal permission requested by the assembly ? if ((reqdPset != null) && !reqdPset.IsSubsetOf(resolved)) { throw new PolicyException(Locale.GetText( "Policy doesn't grant the minimal permissions required to execute the assembly.")); } // do we check for execution rights ? if (CheckExecutionRights) { bool execute = false; // an empty permissionset doesn't include Execution if (resolved != null) { // unless we have "Full Trust"... if (resolved.IsUnrestricted()) { execute = true; } else { // ... we need to find a SecurityPermission IPermission security = resolved.GetPermission(typeof(SecurityPermission)); execute = _execution.IsSubsetOf(security); } } if (!execute) { throw new PolicyException(Locale.GetText( "Policy doesn't grant the right to execute the assembly.")); } } denied = denyPset; return(resolved); }