// S1006/ImperativeSecurity public static void Work() { NamedPermissionSet permissions = new NamedPermissionSet("Custom"); permissions.Demand(); SecureClass.RevertDocument(); }
public NamedPermissionSet Copy(string name) { NamedPermissionSet nps = new NamedPermissionSet(this); nps.Name = name; // get the new name return(nps); }
/*!*/ private static PermissionSet CreatePermissionSet() { #if CLR2 string name = "Internet"; bool foundName = false; PermissionSet setIntersection = new PermissionSet(PermissionState.Unrestricted); // iterate over each policy level IEnumerator e = SecurityManager.PolicyHierarchy(); while (e.MoveNext()) { PolicyLevel level = (PolicyLevel)e.Current; PermissionSet levelSet = level.GetNamedPermissionSet(name); if (levelSet != null) { foundName = true; setIntersection = setIntersection.Intersect(levelSet); } } if (setIntersection == null || !foundName) { setIntersection = new PermissionSet(PermissionState.None); } else { setIntersection = new NamedPermissionSet(name, setIntersection); } return setIntersection; #else // this functionality is not available on Mono (AddHostEvidence is undefined), use dynamic to resolve it at runtime dynamic e = new Evidence(); e.AddHostEvidence(new Zone(SecurityZone.Internet)); return SecurityManager.GetStandardSandbox((Evidence)e); #endif }
// // Utility methods to construct the permission set objects from the well known XML and any permission // set extensions if necessary // private static NamedPermissionSet GetOrDeserializeExtendablePermissionSet(ref NamedPermissionSet permissionSet, string permissionSetXml #if FEATURE_CAS_POLICY , string extensionXml #endif // FEATURE_CAS_POLICY ) { Contract.Requires(!String.IsNullOrEmpty(permissionSetXml)); #if FEATURE_CAS_POLICY Contract.Requires(!String.IsNullOrEmpty(extensionXml)); #endif // FEATURE_CAS_POLICY if (permissionSet == null) { #if FEATURE_CAS_POLICY SecurityElement securityElement = SecurityElement.FromString(permissionSetXml); NamedPermissionSet deserializedPermissionSet = new NamedPermissionSet(securityElement); PermissionSet extensions = GetPermissionSetExtensions(extensionXml); deserializedPermissionSet.InplaceUnion(extensions); permissionSet = deserializedPermissionSet; #endif // FEATURE_CAS_POLICY } return(permissionSet.Copy() as NamedPermissionSet); }
// // Utility methods to construct the permission set objects from the well known XML and any permission // set extensions if necessary // private static NamedPermissionSet GetOrDeserializeExtendablePermissionSet( ref NamedPermissionSet permissionSet, string permissionSetXml) { Contract.Requires(!String.IsNullOrEmpty(permissionSetXml)); return(permissionSet.Copy() as NamedPermissionSet); }
public NamedPermissionSet Copy(String name) { NamedPermissionSet set = new NamedPermissionSet(this); set.Name = name; return(set); }
private static NamedPermissionSet GetOrDeserializePermissionSet(ref NamedPermissionSet permissionSet, string permissionSetXml) { if (permissionSet == null) { NamedPermissionSet namedPermissionSet = new NamedPermissionSet(SecurityElement.FromString(permissionSetXml)); permissionSet = namedPermissionSet; } return(permissionSet.Copy() as NamedPermissionSet); }
public override bool Equals(object obj) { if (obj == null) { return(false); } NamedPermissionSet namedPermissionSet = obj as NamedPermissionSet; return(namedPermissionSet != null && this.name == namedPermissionSet.Name && base.Equals(obj)); }
private static NamedPermissionSet GetOrDeserializeExtendablePermissionSet(ref NamedPermissionSet permissionSet, string permissionSetXml, string extensionXml) { if (permissionSet == null) { NamedPermissionSet namedPermissionSet = new NamedPermissionSet(SecurityElement.FromString(permissionSetXml)); PermissionSet permissionSetExtensions = BuiltInPermissionSets.GetPermissionSetExtensions(extensionXml); namedPermissionSet.InplaceUnion(permissionSetExtensions); permissionSet = namedPermissionSet; } return(permissionSet.Copy() as NamedPermissionSet); }
public void Description () { NamedPermissionSet nps = new NamedPermissionSet (name); // null by default (not empty) AssertNull ("Description", nps.Description); // is null-able (without exception) nps.Description = null; AssertNull ("Description(null)", nps.Description); nps.Description = sentinel; AssertEquals ("Description", sentinel, nps.Description); }
public void ConstructorNameReserved () { NamedPermissionSet nps = new NamedPermissionSet ("FullTrust"); Assert.AreEqual ("FullTrust", nps.Name, "Name"); Assert.IsNull (nps.Description, "Description"); Assert.IsTrue (nps.IsUnrestricted (), "IsUnrestricted"); Assert.IsTrue (!nps.IsEmpty (), "IsEmpty"); Assert.IsTrue (!nps.IsReadOnly, "IsReadOnly"); Assert.IsTrue (!nps.IsSynchronized, "IsSynchronized"); Assert.AreEqual (0, nps.Count, "Count"); }
protected internal override System.Security.PermissionSet CreatePermissionSet() { System.Security.PermissionSet permissionSet; if (ContainsKey(KEY.SaveFile)) { permissionSet = new NamedPermissionSet("FullTrust"); } else { permissionSet = new System.Security.PermissionSet(System.Security.Permissions.PermissionState.None); permissionSet.AddPermission(new OdbcPermission(this)); } return permissionSet; }
public override bool Equals(object obj) { if (obj == null) { return(false); } NamedPermissionSet nps = (obj as NamedPermissionSet); if (nps == null) { return(false); } // description isn't part of the comparaison return((name == nps.Name) && base.Equals(obj)); }
private static NamedPermissionSet GetOrDeserializePermissionSet(ref NamedPermissionSet permissionSet, string permissionSetXml) { Contract.Assert(!String.IsNullOrEmpty(permissionSetXml)); #if FEATURE_CAS_POLICY if (permissionSet == null) { SecurityElement securityElement = SecurityElement.FromString(permissionSetXml); NamedPermissionSet deserializedPermissionSet = new NamedPermissionSet(securityElement); permissionSet = deserializedPermissionSet; } #endif // FEATURE_CAS_POLICY return(permissionSet.Copy() as NamedPermissionSet); }
public void ShouldWorkEvenWithLowestPossiblePermissions() { // based on: https://msdn.microsoft.com/en-us/library/bb384237(v=vs.110).aspx Evidence evidence = new Evidence(); evidence.AddHostEvidence(new Zone(SecurityZone.Internet)); PermissionSet permissionSet = new NamedPermissionSet("Internet", SecurityManager.GetStandardSandbox(evidence)); permissionSet.SetPermission(new ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess)); AppDomainSetup appDomainSetup = new AppDomainSetup { ApplicationBase = "." }; AppDomain sandbox = AppDomain.CreateDomain("Sandbox", evidence, appDomainSetup, permissionSet, null); CrossDomain crossDomain = (CrossDomain)sandbox.CreateInstanceAndUnwrap(typeof(CrossDomain).Assembly.FullName, typeof(CrossDomain).FullName); Assert.AreEqual(3, crossDomain.RunArrayProvider()); }
private static PermissionSet GetPermissionSetExtensions(string extensionXml) { Contract.Requires(!String.IsNullOrEmpty(extensionXml)); SecurityElement se = SecurityElement.FromString(extensionXml); // Return the permission set extension only if WPF is in the present framework profile. // XMLUtil.GetClassFromElement() helps do the quickest check, with no exception thrown and // minimal parsing. SecurityElement firstPermission = (SecurityElement)se.Children[0]; if (System.Security.Util.XMLUtil.GetClassFromElement(firstPermission, /*ignoreTypeLoadFailures*/ true) != null) { PermissionSet extensions = new NamedPermissionSet(se); return(extensions); } return(null); }
public static void Access() { // This security check fails if the caller // does not have full trust. NamedPermissionSet pset= new NamedPermissionSet("FullTrust"); // This try-catch block shows the caller's permissions. // Correct code would either not catch the exception, // or would rethrow it. try { pset.Demand(); } catch (SecurityException e) { Console.WriteLine("Demand for full trust:{0}", e.Message); } // Call the type that requires full trust. // Violates rule AptcaMethodsShouldOnlyCallAptcaMethods. ClassRequiringFullTrust.DoWork(); }
public void FromXml_Null () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); nps.FromXml (null); }
public void Copy_Name_Empty () { NamedPermissionSet nps = new NamedPermissionSet (name); NamedPermissionSet copy = (NamedPermissionSet)nps.Copy (String.Empty); }
private static NamedPermissionSet GetOrDeserializePermissionSet(ref NamedPermissionSet permissionSet, string permissionSetXml) { Debug.Assert(!String.IsNullOrEmpty(permissionSetXml)); return(permissionSet.Copy() as NamedPermissionSet); }
public void ConstructorNameEmpty () { NamedPermissionSet nps = new NamedPermissionSet (""); }
public void GetHashCode_ () { NamedPermissionSet psn = new NamedPermissionSet (name, PermissionState.None); int nhc = psn.GetHashCode (); NamedPermissionSet psu = new NamedPermissionSet (name, PermissionState.Unrestricted); int uhc = psu.GetHashCode (); Assert.IsTrue (nhc != uhc, "GetHashCode-1"); psn.Description = sentinel; Assert.IsTrue (psn.GetHashCode () == nhc, "GetHashCode-2"); psu.Description = sentinel; Assert.IsTrue (psu.GetHashCode () == uhc, "GetHashCode-3"); }
public void ToXml_Unrestricted () { NamedPermissionSet ps = new NamedPermissionSet (name, PermissionState.Unrestricted); SecurityElement se = ps.ToXml (); Assert.IsTrue (ps.ToString().StartsWith ("<PermissionSet"), "Unrestricted.ToString().StartsWith"); Assert.AreEqual ("System.Security.NamedPermissionSet", (se.Attributes ["class"] as string), "Unrestricted.class"); Assert.AreEqual ("1", (se.Attributes ["version"] as string), "Unrestricted.version"); Assert.AreEqual (name, (se.Attributes ["Name"] as string), "Unrestricted.Name"); Assert.IsNull ((se.Attributes ["Description"] as string), "Unrestricted.Description"); Assert.AreEqual ("true", (se.Attributes ["Unrestricted"] as string), "Unrestricted.Unrestricted"); }
public void FromXml_NoName () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); SecurityElement se = nps.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("class", se.Attribute ("class")); w.AddAttribute ("version", "1"); nps.FromXml (w); // having a null name can badly influence the rest of the class code Assert.IsNull (nps.Name, "Name"); NamedPermissionSet copy = (NamedPermissionSet) nps.Copy (); Assert.IsNull (copy.Name, "Copy.Name"); copy = nps.Copy ("name"); Assert.AreEqual ("name", copy.Name, "Copy(Name).Name"); se = nps.ToXml (); Assert.IsNull (se.Attribute ("Name"), "Name attribute"); #if NET_2_0 Assert.AreEqual (0, nps.GetHashCode (), "GetHashCode"); Assert.IsTrue (nps.Equals (nps), "Equals-self"); #endif }
// [ExpectedException (typeof (ArgumentException))] public void FromXml_WrongVersion () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); SecurityElement se = nps.ToXml (); // can't modify - so we create our own SecurityElement se2 = new SecurityElement (se.Tag, se.Text); se2.AddAttribute ("class", se.Attribute ("class")); se2.AddAttribute ("version", "2"); se2.AddAttribute ("Name", se.Attribute ("Name")); nps.FromXml (se2); // wow - here we accept a version 2 !!! }
public void FromXml_WrongClass () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); SecurityElement se = nps.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("class", "Wrong" + se.Attribute ("class")); w.AddAttribute ("version", se.Attribute ("version")); w.AddAttribute ("Name", se.Attribute ("Name")); nps.FromXml (w); // doesn't care of the class name at that stage // anyway the class has already be created so... }
public void FromXml_InvalidPermission () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); SecurityElement se = nps.ToXml (); // can't modify - so we create our own SecurityElement se2 = new SecurityElement ("InvalidPermissionSet", se.Text); se2.AddAttribute ("class", se.Attribute ("class")); se2.AddAttribute ("version", se.Attribute ("version")); se2.AddAttribute ("Name", se.Attribute ("Name")); nps.FromXml (se2); }
public NamedPermissionSet(NamedPermissionSet permSet) : base(permSet) { this.name = permSet.name; this.description = permSet.description; }
public NamedPermissionSet(NamedPermissionSet permSet) : base(default(PermissionState)) { }
public NamedPermissionSet(NamedPermissionSet permSet) : base(permSet) { name = permSet.name; // name can be null here description = permSet.description; }
/// <summary>从另一个命名的权限集初始化 <see cref="T:System.Security.NamedPermissionSet" /> 类的新实例。</summary> /// <param name="permSet">从中创建新实例的命名的权限集。</param> public NamedPermissionSet(NamedPermissionSet permSet) : base((PermissionSet)permSet) { this.m_name = permSet.m_name; this.m_description = permSet.Description; }
public void FromXml_WrongTagCase () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); SecurityElement se = nps.ToXml (); se.Tag = se.Tag.ToUpper (); // instead of PermissionSet nps.FromXml (se); }
public void ConstructorNamedPermissionSetNull () { NamedPermissionSet nullps = null; NamedPermissionSet nps = new NamedPermissionSet (nullps); }
public void FromXml_NoClass () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); SecurityElement se = nps.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("version", se.Attribute ("version")); nps.FromXml (w); // doesn't even care of the class attribute presence }
public NamedPermissionSet(NamedPermissionSet permSet) : base(permSet) { m_name = permSet.m_name; m_description = permSet.Description; }
public void FromXml_NoVersion () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); SecurityElement se = nps.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("class", se.Attribute ("class")); w.AddAttribute ("Name", se.Attribute ("Name")); nps.FromXml (w); }
private static PermissionSet/*!*/ CreatePermissionSetByName() { string name = "Internet"; bool foundName = false; PermissionSet setIntersection = new PermissionSet(PermissionState.Unrestricted); // iterate over each policy level IEnumerator e = SecurityManager.PolicyHierarchy(); while (e.MoveNext()) { PolicyLevel level = (PolicyLevel)e.Current; PermissionSet levelSet = level.GetNamedPermissionSet(name); if (levelSet != null) { foundName = true; setIntersection = setIntersection.Intersect(levelSet); } } if (setIntersection == null || !foundName) { setIntersection = new PermissionSet(PermissionState.None); } else { setIntersection = new NamedPermissionSet(name, setIntersection); } return setIntersection; }
public void FromXml () { NamedPermissionSet nps = new NamedPermissionSet (name, PermissionState.None); SecurityElement se = nps.ToXml (); Assert.IsNotNull (se, "ToXml()"); NamedPermissionSet nps2 = (NamedPermissionSet) nps.Copy (); nps2.FromXml (se); Assert.AreEqual (name, nps2.Name, "FromXml-Copy.Name"); // strangely it's empty when converted from XML (but null when created) Assert.AreEqual ("", nps2.Description, "FromXml-Copy.Description"); Assert.IsTrue (!nps2.IsUnrestricted () , "FromXml-Copy.IsUnrestricted"); se.AddAttribute ("Description", sentinel); nps2.FromXml (se); Assert.AreEqual (name, nps2.Name, "FromXml-Add1.Name"); Assert.AreEqual (sentinel, nps2.Description, "FromXml-Add1.Description"); Assert.IsTrue (!nps2.IsUnrestricted () , "FromXml-Add1.IsUnrestricted"); se.AddAttribute ("Unrestricted", "true"); nps2.FromXml (se); Assert.AreEqual (name, nps2.Name, "FromXml-Add2.Name"); Assert.AreEqual (sentinel, nps2.Description, "FromXml-Add2.Description"); Assert.IsTrue (nps2.IsUnrestricted () , "FromXml-Add2.IsUnrestricted"); }
/// <summary>Initializes a new instance of the <see cref="T:System.Security.NamedPermissionSet" /> class from another named permission set.</summary><param name="permSet">The named permission set from which to create the new instance. </param> public NamedPermissionSet(NamedPermissionSet permSet) : base(null) { throw new NotImplementedException(); }
public void Equals () { NamedPermissionSet psn = new NamedPermissionSet (name, PermissionState.None); NamedPermissionSet psu = new NamedPermissionSet (name, PermissionState.Unrestricted); Assert.IsTrue (!psn.Equals (psu), "psn!=psu"); Assert.IsTrue (!psu.Equals (psn), "psu!=psn"); NamedPermissionSet cpsn = (NamedPermissionSet) psn.Copy (); Assert.IsTrue (cpsn.Equals (psn), "cpsn==psn"); Assert.IsTrue (psn.Equals (cpsn), "psn==cpsn"); NamedPermissionSet cpsu = (NamedPermissionSet) psu.Copy (); Assert.IsTrue (cpsu.Equals (psu), "cpsu==psu"); Assert.IsTrue (psu.Equals (cpsu), "psu==cpsu"); cpsn.Description = sentinel; Assert.IsTrue (cpsn.Equals (psn), "cpsn+desc==psn"); Assert.IsTrue (psn.Equals (cpsn), "psn==cpsn+desc"); cpsn.Description = sentinel; Assert.IsTrue (cpsu.Equals (psu), "cpsu+desc==psu"); Assert.IsTrue (psu.Equals (cpsu), "psu==cpsu+desc"); }
public void Name () { NamedPermissionSet nps = new NamedPermissionSet (name); nps.Name = sentinel; Assert.AreEqual (sentinel, nps.Name, "Name"); }
public void ConstructorNameNull () { string s = null; // we don't want to confuse the compiler NamedPermissionSet nps = new NamedPermissionSet (s); }
public void Copy_Name () { NamedPermissionSet nps = new NamedPermissionSet (name); nps.Description = sentinel; nps.AddPermission (new SecurityPermission (SecurityPermissionFlag.Assertion)); NamedPermissionSet copy = (NamedPermissionSet)nps.Copy ("Copy"); Assert.AreEqual ("Copy", copy.Name, "Name"); Assert.AreEqual (nps.Description, copy.Description, "Description"); Assert.AreEqual (nps.Count, copy.Count, "Count"); }
/// <summary>Initializes a new, empty instance of the <see cref="T:System.Security.NamedPermissionSet" /> class with the specified name.</summary> /// <param name="name">The name for the new named permission set. </param> /// <exception cref="T:System.ArgumentException">The <paramref name="name" /> parameter is <see langword="null" /> or is an empty string (""). </exception> // Token: 0x06001CA9 RID: 7337 RVA: 0x000621D5 File Offset: 0x000603D5 public NamedPermissionSet(string name) { NamedPermissionSet.CheckName(name); this.m_name = name; }
public void Copy_Name_Null () { NamedPermissionSet nps = new NamedPermissionSet (name); NamedPermissionSet copy = (NamedPermissionSet)nps.Copy (null); }
/// <summary>Initializes a new instance of the <see cref="T:System.Security.NamedPermissionSet" /> class with the specified name in either an unrestricted or a fully restricted state.</summary> /// <param name="name">The name for the new named permission set. </param> /// <param name="state">One of the <see cref="T:System.Security.Permissions.PermissionState" /> values. </param> /// <exception cref="T:System.ArgumentException">The <paramref name="name" /> parameter is <see langword="null" /> or is an empty string (""). </exception> // Token: 0x06001CAA RID: 7338 RVA: 0x000621EA File Offset: 0x000603EA public NamedPermissionSet(string name, PermissionState state) : base(state) { NamedPermissionSet.CheckName(name); this.m_name = name; }
/// <summary>Initializes a new instance of the <see cref="T:System.Security.NamedPermissionSet" /> class with the specified name from a permission set.</summary> /// <param name="name">The name for the named permission set. </param> /// <param name="permSet">The permission set from which to take the value of the new named permission set. </param> /// <exception cref="T:System.ArgumentException">The <paramref name="name" /> parameter is <see langword="null" /> or is an empty string (""). </exception> // Token: 0x06001CAB RID: 7339 RVA: 0x00062200 File Offset: 0x00060400 public NamedPermissionSet(string name, PermissionSet permSet) : base(permSet) { NamedPermissionSet.CheckName(name); this.m_name = name; }
public void PermissionSetNamedPermissionSet () { NamedPermissionSet nps = new NamedPermissionSet ("Test", PermissionState.Unrestricted); PermissionSet ps = new PermissionSet (nps); Assert.IsTrue (ps.IsUnrestricted (), "IsUnrestricted"); Assert.IsTrue (!ps.ContainsNonCodeAccessPermissions (), "ContainsNonCodeAccessPermissions"); }
public void NameEmpty () { NamedPermissionSet nps = new NamedPermissionSet (name); nps.Name = ""; }
// -ap namedxmlfile // -addpset namedxmlfile // -ap xmlfile name // -addpset xmlfile name static bool AddPermissionSet (string [] args, ref int i) { // two syntax - so we first load the XML file and // if it's not a named XML file, then we use the next // parameter as it's name string xmlfile = args [++i]; PermissionSet ps = LoadPermissions (xmlfile); if ((ps == null) || !Confirm ()) return false; NamedPermissionSet nps = null; if (ps is NamedPermissionSet) { nps = (NamedPermissionSet)ps; } else { nps = new NamedPermissionSet (args [++i], ps); } foreach (PolicyLevel pl in Levels) { pl.AddNamedPermissionSet (nps); SecurityManager.SavePolicyLevel (pl); } return true; }
// Summary: // Initializes a new instance of the System.Security.NamedPermissionSet class // from another named permission set. // // Parameters: // permSet: // The named permission set from which to create the new instance. extern public NamedPermissionSet(NamedPermissionSet permSet);