diff options
Diffstat (limited to 'src/mscorlib/src/System/Security/NamedPermissionSet.cs')
-rw-r--r-- | src/mscorlib/src/System/Security/NamedPermissionSet.cs | 202 |
1 files changed, 4 insertions, 198 deletions
diff --git a/src/mscorlib/src/System/Security/NamedPermissionSet.cs b/src/mscorlib/src/System/Security/NamedPermissionSet.cs index fba76749a1..1bc166fde8 100644 --- a/src/mscorlib/src/System/Security/NamedPermissionSet.cs +++ b/src/mscorlib/src/System/Security/NamedPermissionSet.cs @@ -7,212 +7,19 @@ // Extends PermissionSet to allow an associated name and description // -namespace System.Security { - +namespace System.Security +{ using System; - using System.Security.Util; using System.Security.Permissions; - using System.Runtime.Serialization; - using System.Diagnostics.Contracts; -#if !FEATURE_CAS_POLICY - using Microsoft.Win32; - using System.Collections; - using System.Globalization; - using System.IO; - using System.Reflection; - using System.Runtime.InteropServices; - using System.Runtime.Remoting; - using System.Runtime.Versioning; - using System.Text; - -#else // FEATURE_CAS_POLICY - - using System.Threading; - -#endif // FEATURE_CAS_POLICY - [Serializable] -[System.Runtime.InteropServices.ComVisible(true)] + [System.Runtime.InteropServices.ComVisible(true)] public sealed class NamedPermissionSet : PermissionSet { -#if FEATURE_CAS_POLICY - // The name of this PermissionSet - private String m_name; - - // The description of this PermissionSet - private String m_description; - [OptionalField(VersionAdded = 2)] - internal String m_descrResource; - - internal NamedPermissionSet() - : base() - { - } - - public NamedPermissionSet( String name ) - : base() - { - CheckName( name ); - m_name = name; - } - - public NamedPermissionSet( String name, PermissionState state) - : base( state ) - { - CheckName( name ); - m_name = name; - } - - - public NamedPermissionSet( String name, PermissionSet permSet ) - : base( permSet ) - { - CheckName( name ); - m_name = name; - } - - public NamedPermissionSet( NamedPermissionSet permSet ) - : base( permSet ) - { - m_name = permSet.m_name; - m_description = permSet.Description; - } - - internal NamedPermissionSet(SecurityElement permissionSetXml) - : base(PermissionState.None) - { - Contract.Assert(permissionSetXml != null); - FromXml(permissionSetXml); - } - - public String Name { - get { return m_name; } - set { CheckName( value ); m_name = value; } - } - - private static void CheckName( String name ) - { - if (name == null || name.Equals( "" )) - throw new ArgumentException( Environment.GetResourceString( "Argument_NPMSInvalidName" )); - Contract.EndContractBlock(); - } - - public String Description { - get - { - if(m_descrResource != null) - { - m_description = Environment.GetResourceString(m_descrResource); - m_descrResource = null; - } - return m_description; - } - - set - { - m_description = value; - m_descrResource = null; - } - } - - public override PermissionSet Copy() - { - return new NamedPermissionSet( this ); - } - - public NamedPermissionSet Copy( String name ) - { - NamedPermissionSet set = new NamedPermissionSet( this ); - set.Name = name; - return set; - } - - public override SecurityElement ToXml() - { - SecurityElement elem = base.ToXml("System.Security.NamedPermissionSet"); - // If you hit this assert then most likely you are trying to change the name of this class. - // This is ok as long as you change the hard coded string above and change the assert below. - Contract.Assert( this.GetType().FullName.Equals( "System.Security.NamedPermissionSet" ), "Class name changed!" ); - - if (m_name != null && !m_name.Equals( "" )) - { - elem.AddAttribute( "Name", SecurityElement.Escape( m_name ) ); - } - - if (Description != null && !Description.Equals( "" )) - { - elem.AddAttribute( "Description", SecurityElement.Escape( Description ) ); - } - - return elem; - } - - public override void FromXml( SecurityElement et ) - { - FromXml( et, false, false ); - } - - internal override void FromXml( SecurityElement et, bool allowInternalOnly, bool ignoreTypeLoadFailures ) - { - if (et == null) - throw new ArgumentNullException( "et" ); - Contract.EndContractBlock(); - - String elem; - - elem = et.Attribute( "Name" ); - m_name = elem == null ? null : elem; - - elem = et.Attribute( "Description" ); - m_description = (elem == null ? "" : elem); - m_descrResource = null; - - base.FromXml( et, allowInternalOnly, ignoreTypeLoadFailures ); - } - - internal void FromXmlNameOnly( SecurityElement et ) + internal static PermissionSet GetBuiltInSet(string name) { - // This function gets only the name for the permission set, ignoring all other info. - - String elem; - - elem = et.Attribute( "Name" ); - m_name = (elem == null ? null : elem); - } - - // NamedPermissionSet Equals should have the exact semantic as PermissionSet. - // We explicitly override them here to make sure that no one accidently - // changes this. - - [System.Runtime.InteropServices.ComVisible(false)] - public override bool Equals( Object obj ) - { - return base.Equals( obj ); - } - - [System.Runtime.InteropServices.ComVisible(false)] - public override int GetHashCode() - { - return base.GetHashCode(); - } - - private static Object s_InternalSyncObject; - private static Object InternalSyncObject { - get { - if (s_InternalSyncObject == null) { - Object o = new Object(); - Interlocked.CompareExchange(ref s_InternalSyncObject, o, null); - } - return s_InternalSyncObject; - } - } -#else // FEATURE_CAS_POLICY - - internal static PermissionSet GetBuiltInSet(string name) { // Used by PermissionSetAttribute to create one of the built-in, // immutable permission sets. - if (name == null) return null; else if (name.Equals("FullTrust")) @@ -264,6 +71,5 @@ namespace System.Security { } -#endif // !FEATURE_CAS_POLICY } } |