summaryrefslogtreecommitdiff
path: root/src/mscorlib/src/System/Security/NamedPermissionSet.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/mscorlib/src/System/Security/NamedPermissionSet.cs')
-rw-r--r--src/mscorlib/src/System/Security/NamedPermissionSet.cs202
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
}
}