diff options
Diffstat (limited to 'src/mscorlib/src/System/Security/Permissions')
18 files changed, 48 insertions, 1611 deletions
diff --git a/src/mscorlib/src/System/Security/Permissions/EnvironmentPermission.cs b/src/mscorlib/src/System/Security/Permissions/EnvironmentPermission.cs index 8208ed3fb0..567fe513c0 100644 --- a/src/mscorlib/src/System/Security/Permissions/EnvironmentPermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/EnvironmentPermission.cs @@ -56,7 +56,6 @@ namespace System.Security.Permissions { return str; } - [SecuritySafeCritical] public override string ToString() { // SafeCritical: we're not storing path information in the strings, so exposing them out is fine ... @@ -103,7 +102,6 @@ namespace System.Security.Permissions { AddPathList( flag, pathList ); } - [System.Security.SecuritySafeCritical] // auto-generated public void AddPathList( EnvironmentPermissionAccess flag, String pathList ) { VerifyFlag( flag ); @@ -204,7 +202,6 @@ namespace System.Security.Permissions { // //------------------------------------------------------ - [System.Security.SecuritySafeCritical] // auto-generated public override bool IsSubsetOf(IPermission target) { if (target == null) @@ -232,7 +229,6 @@ namespace System.Security.Permissions { } } - [System.Security.SecuritySafeCritical] // auto-generated public override IPermission Intersect(IPermission target) { if (target == null) @@ -275,7 +271,6 @@ namespace System.Security.Permissions { return intersectPermission; } - [System.Security.SecuritySafeCritical] // auto-generated public override IPermission Union(IPermission other) { if (other == null) @@ -334,61 +329,8 @@ namespace System.Security.Permissions { } } - return copy; + return copy; } - -#if FEATURE_CAS_POLICY - public override SecurityElement ToXml() - { - SecurityElement esd = CodeAccessPermission.CreatePermissionElement( this, "System.Security.Permissions.EnvironmentPermission" ); - if (!IsUnrestricted()) - { - if (this.m_read != null && !this.m_read.IsEmpty()) - { - esd.AddAttribute( "Read", SecurityElement.Escape( m_read.ToString() ) ); - } - if (this.m_write != null && !this.m_write.IsEmpty()) - { - esd.AddAttribute( "Write", SecurityElement.Escape( m_write.ToString() ) ); - } - } - else - { - esd.AddAttribute( "Unrestricted", "true" ); - } - return esd; - } - - public override void FromXml(SecurityElement esd) - { - CodeAccessPermission.ValidateElement( esd, this ); - - String et; - - if (XMLUtil.IsUnrestricted(esd)) - { - m_unrestricted = true; - return; - } - - m_unrestricted = false; - m_read = null; - m_write = null; - - et = esd.Attribute( "Read" ); - if (et != null) - { - m_read = new EnvironmentStringExpressionSet( et ); - } - - et = esd.Attribute( "Write" ); - if (et != null) - { - m_write = new EnvironmentStringExpressionSet( et ); - } - - } -#endif // FEATURE_CAS_POLICY /// <internalonly/> int IBuiltInPermission.GetTokenIndex() diff --git a/src/mscorlib/src/System/Security/Permissions/FileDialogPermission.cs b/src/mscorlib/src/System/Security/Permissions/FileDialogPermission.cs index 6d6c221cc9..98a7d54c68 100644 --- a/src/mscorlib/src/System/Security/Permissions/FileDialogPermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/FileDialogPermission.cs @@ -66,22 +66,6 @@ namespace System.Security.Permissions { return new FileDialogPermission(this.access); } -#if FEATURE_CAS_POLICY - public override void FromXml(SecurityElement esd) { - CodeAccessPermission.ValidateElement(esd, this); - if (XMLUtil.IsUnrestricted(esd)) { - SetUnrestricted(true); - return; - } - - access = FileDialogPermissionAccess.None; - - string accessXml = esd.Attribute("Access"); - if (accessXml != null) - access = (FileDialogPermissionAccess)Enum.Parse(typeof(FileDialogPermissionAccess), accessXml); - } -#endif // FEATURE_CAS_POLICY - /// <internalonly/> int IBuiltInPermission.GetTokenIndex() { return FileDialogPermission.GetTokenIndex(); @@ -152,21 +136,6 @@ namespace System.Security.Permissions { } } -#if FEATURE_CAS_POLICY - public override SecurityElement ToXml() { - SecurityElement esd = CodeAccessPermission.CreatePermissionElement( this, "System.Security.Permissions.FileDialogPermission" ); - if (!IsUnrestricted()) { - if (access != FileDialogPermissionAccess.None) { - esd.AddAttribute("Access", Enum.GetName(typeof(FileDialogPermissionAccess), access)); - } - } - else { - esd.AddAttribute("Unrestricted", "true"); - } - return esd; - } -#endif // FEATURE_CAS_POLICY - public override IPermission Union(IPermission target) { if (target == null) { return this.Copy(); @@ -177,7 +146,7 @@ namespace System.Security.Permissions { FileDialogPermission operand = (FileDialogPermission)target; return new FileDialogPermission(access | operand.Access); - } + } static void VerifyAccess(FileDialogPermissionAccess access) { if ((access & ~FileDialogPermissionAccess.OpenSave) != 0 ) { diff --git a/src/mscorlib/src/System/Security/Permissions/FileIOPermission.cs b/src/mscorlib/src/System/Security/Permissions/FileIOPermission.cs index b4d4141f82..34b9f1ef80 100644 --- a/src/mscorlib/src/System/Security/Permissions/FileIOPermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/FileIOPermission.cs @@ -2,13 +2,11 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. -namespace System.Security.Permissions { +namespace System.Security.Permissions +{ using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -#if FEATURE_CAS_POLICY - using SecurityElement = System.Security.SecurityElement; -#endif // FEATURE_CAS_POLICY using System.Security.AccessControl; using System.Security.Util; using System.IO; @@ -16,11 +14,12 @@ namespace System.Security.Permissions { using System.Globalization; using System.Runtime.Serialization; using System.Runtime.Versioning; + using System.Diagnostics; using System.Diagnostics.Contracts; -[Serializable] + [Serializable] [Flags] -[System.Runtime.InteropServices.ComVisible(true)] + [System.Runtime.InteropServices.ComVisible(true)] public enum FileIOPermissionAccess { NoAccess = 0x00, @@ -30,9 +29,8 @@ namespace System.Security.Permissions { PathDiscovery = 0x08, AllAccess = 0x0F, } - - -[System.Runtime.InteropServices.ComVisible(true)] + + [System.Runtime.InteropServices.ComVisible(true)] [Serializable] sealed public class FileIOPermission : CodeAccessPermission, IUnrestrictedPermission, IBuiltInPermission { @@ -62,7 +60,6 @@ namespace System.Security.Permissions { } } - [System.Security.SecuritySafeCritical] // auto-generated public FileIOPermission( FileIOPermissionAccess access, String path ) { VerifyAccess( access ); @@ -71,7 +68,6 @@ namespace System.Security.Permissions { AddPathList( access, pathList, false, true, false ); } - [System.Security.SecuritySafeCritical] // auto-generated public FileIOPermission( FileIOPermissionAccess access, String[] pathList ) { VerifyAccess( access ); @@ -79,24 +75,6 @@ namespace System.Security.Permissions { AddPathList( access, pathList, false, true, false ); } -#if FEATURE_MACL - [System.Security.SecuritySafeCritical] // auto-generated - public FileIOPermission( FileIOPermissionAccess access, AccessControlActions control, String path ) - { - VerifyAccess( access ); - - String[] pathList = new String[] { path }; - AddPathList( access, control, pathList, false, true, false ); - } - - [System.Security.SecuritySafeCritical] // auto-generated - public FileIOPermission( FileIOPermissionAccess access, AccessControlActions control, String[] pathList ) - : this( access, control, pathList, true, true ) - { - } -#endif - - [System.Security.SecurityCritical] // auto-generated internal FileIOPermission( FileIOPermissionAccess access, String[] pathList, bool checkForDuplicates, bool needFullPath ) { VerifyAccess( access ); @@ -104,16 +82,6 @@ namespace System.Security.Permissions { AddPathList( access, pathList, checkForDuplicates, needFullPath, true ); } -#if FEATURE_MACL - [System.Security.SecurityCritical] // auto-generated - internal FileIOPermission( FileIOPermissionAccess access, AccessControlActions control, String[] pathList, bool checkForDuplicates, bool needFullPath ) - { - VerifyAccess( access ); - - AddPathList( access, control, pathList, checkForDuplicates, needFullPath, true ); - } -#endif - public void SetPathList( FileIOPermissionAccess access, String path ) { String[] pathList; @@ -135,7 +103,6 @@ namespace System.Security.Permissions { SetPathList( access, AccessControlActions.None, pathList, checkForDuplicates ); } - [System.Security.SecuritySafeCritical] // auto-generated internal void SetPathList( FileIOPermissionAccess access, AccessControlActions control, String[] pathList, bool checkForDuplicates ) { VerifyAccess( access ); @@ -152,26 +119,13 @@ namespace System.Security.Permissions { if ((access & FileIOPermissionAccess.PathDiscovery) != 0) m_pathDiscovery = null; -#if FEATURE_MACL - if ((control & AccessControlActions.View) != 0) - m_viewAcl = null; - - if ((control & AccessControlActions.Change) != 0) - m_changeAcl = null; -#else m_viewAcl = null; m_changeAcl = null; -#endif - m_unrestricted = false; -#if FEATURE_MACL - AddPathList( access, control, pathList, checkForDuplicates, true, true ); -#else + AddPathList( access, pathList, checkForDuplicates, true, true ); -#endif } - [System.Security.SecuritySafeCritical] // auto-generated public void AddPathList( FileIOPermissionAccess access, String path ) { String[] pathList; @@ -182,19 +136,16 @@ namespace System.Security.Permissions { AddPathList( access, pathList, false, true, false ); } - [System.Security.SecuritySafeCritical] // auto-generated public void AddPathList( FileIOPermissionAccess access, String[] pathList ) { AddPathList( access, pathList, true, true, true ); } - [System.Security.SecurityCritical] // auto-generated internal void AddPathList( FileIOPermissionAccess access, String[] pathListOrig, bool checkForDuplicates, bool needFullPath, bool copyPathList ) { AddPathList( access, AccessControlActions.None, pathListOrig, checkForDuplicates, needFullPath, copyPathList ); } - [System.Security.SecurityCritical] // auto-generated internal void AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, bool checkForDuplicates, bool needFullPath, bool copyPathList) { if (pathListOrig == null) @@ -267,29 +218,8 @@ namespace System.Security.Permissions { } m_pathDiscovery.AddExpressions( pathArrayList, checkForDuplicates); } - -#if FEATURE_MACL - if ((control & AccessControlActions.View) != 0) - { - if (m_viewAcl == null) - { - m_viewAcl = new FileIOAccess(); - } - m_viewAcl.AddExpressions( pathArrayList, checkForDuplicates); - } - - if ((control & AccessControlActions.Change) != 0) - { - if (m_changeAcl == null) - { - m_changeAcl = new FileIOAccess(); - } - m_changeAcl.AddExpressions( pathArrayList, checkForDuplicates); - } -#endif } - - [SecuritySafeCritical] + public String[] GetPathList( FileIOPermissionAccess access ) { VerifyAccess( access ); @@ -335,7 +265,6 @@ namespace System.Security.Permissions { return null; } - public FileIOPermissionAccess AllLocalFiles { @@ -558,7 +487,7 @@ namespace System.Security.Permissions { throw new ArgumentException(Environment.GetResourceString("Argument_InvalidPathChars")); if (!onlyCheckExtras) - Path.CheckInvalidPathChars(str[i]); + PathInternal.CheckInvalidPathChars(str[i]); } #else // There are no "extras" on Unix @@ -567,7 +496,7 @@ namespace System.Security.Permissions { for (int i = 0; i < str.Length; ++i) { - Path.CheckInvalidPathChars(str[i]); + PathInternal.CheckInvalidPathChars(str[i]); } #endif } @@ -785,123 +714,6 @@ namespace System.Security.Permissions { } return copy; } - -#if FEATURE_CAS_POLICY - public override SecurityElement ToXml() - { - SecurityElement esd = CodeAccessPermission.CreatePermissionElement( this, "System.Security.Permissions.FileIOPermission" ); - if (!IsUnrestricted()) - { - if (this.m_read != null && !this.m_read.IsEmpty()) - { - esd.AddAttribute( "Read", SecurityElement.Escape( m_read.ToString() ) ); - } - if (this.m_write != null && !this.m_write.IsEmpty()) - { - esd.AddAttribute( "Write", SecurityElement.Escape( m_write.ToString() ) ); - } - if (this.m_append != null && !this.m_append.IsEmpty()) - { - esd.AddAttribute( "Append", SecurityElement.Escape( m_append.ToString() ) ); - } - if (this.m_pathDiscovery != null && !this.m_pathDiscovery.IsEmpty()) - { - esd.AddAttribute( "PathDiscovery", SecurityElement.Escape( m_pathDiscovery.ToString() ) ); - } - if (this.m_viewAcl != null && !this.m_viewAcl.IsEmpty()) - { - esd.AddAttribute( "ViewAcl", SecurityElement.Escape( m_viewAcl.ToString() ) ); - } - if (this.m_changeAcl != null && !this.m_changeAcl.IsEmpty()) - { - esd.AddAttribute( "ChangeAcl", SecurityElement.Escape( m_changeAcl.ToString() ) ); - } - - } - else - { - esd.AddAttribute( "Unrestricted", "true" ); - } - return esd; - } - - [System.Security.SecuritySafeCritical] // auto-generated - public override void FromXml(SecurityElement esd) - { - CodeAccessPermission.ValidateElement( esd, this ); - String et; - - if (XMLUtil.IsUnrestricted(esd)) - { - m_unrestricted = true; - return; - } - - - m_unrestricted = false; - - et = esd.Attribute( "Read" ); - if (et != null) - { - m_read = new FileIOAccess( et ); - } - else - { - m_read = null; - } - - et = esd.Attribute( "Write" ); - if (et != null) - { - m_write = new FileIOAccess( et ); - } - else - { - m_write = null; - } - - et = esd.Attribute( "Append" ); - if (et != null) - { - m_append = new FileIOAccess( et ); - } - else - { - m_append = null; - } - - et = esd.Attribute( "PathDiscovery" ); - if (et != null) - { - m_pathDiscovery = new FileIOAccess( et ); - m_pathDiscovery.PathDiscovery = true; - } - else - { - m_pathDiscovery = null; - } - - et = esd.Attribute( "ViewAcl" ); - if (et != null) - { - m_viewAcl = new FileIOAccess( et ); - } - else - { - m_viewAcl = null; - } - - et = esd.Attribute( "ChangeAcl" ); - if (et != null) - { - m_changeAcl = new FileIOAccess( et ); - } - else - { - m_changeAcl = null; - } - } -#endif // FEATURE_CAS_POLICY /// <internalonly/> int IBuiltInPermission.GetTokenIndex() @@ -993,19 +805,9 @@ namespace System.Security.Permissions { /// /// IMPORTANT: This method should only be used after calling GetFullPath on the path to verify /// </summary> - [System.Security.SecuritySafeCritical] internal static void QuickDemand(FileIOPermissionAccess access, string fullPath, bool checkForDuplicates = false, bool needFullPath = false) { -#if FEATURE_CAS_POLICY - if (!CodeAccessSecurityEngine.QuickCheckForAllDemands()) - { - new FileIOPermission(access, new string[] { fullPath }, checkForDuplicates, needFullPath).Demand(); - } - else -#endif - { - EmulateFileIOPermissionChecks(fullPath); - } + EmulateFileIOPermissionChecks(fullPath); } /// <summary> @@ -1018,67 +820,19 @@ namespace System.Security.Permissions { /// IMPORTANT: This method should only be used after calling GetFullPath on the path to verify /// /// </summary> - [System.Security.SecuritySafeCritical] internal static void QuickDemand(FileIOPermissionAccess access, string[] fullPathList, bool checkForDuplicates = false, bool needFullPath = true) { -#if FEATURE_CAS_POLICY - if (!CodeAccessSecurityEngine.QuickCheckForAllDemands()) - { - new FileIOPermission(access, fullPathList, checkForDuplicates, needFullPath).Demand(); - } - else -#endif + foreach (string fullPath in fullPathList) { - foreach (string fullPath in fullPathList) - { - EmulateFileIOPermissionChecks(fullPath); - } + EmulateFileIOPermissionChecks(fullPath); } } - [System.Security.SecuritySafeCritical] internal static void QuickDemand(PermissionState state) { // Should be a no-op without CAS -#if FEATURE_CAS_POLICY - if (!CodeAccessSecurityEngine.QuickCheckForAllDemands()) - { - new FileIOPermission(state).Demand(); - } -#endif - } - -#if FEATURE_MACL - [System.Security.SecuritySafeCritical] - internal static void QuickDemand(FileIOPermissionAccess access, AccessControlActions control, string fullPath, bool checkForDuplicates = false, bool needFullPath = true) - { - if (!CodeAccessSecurityEngine.QuickCheckForAllDemands()) - { - new FileIOPermission(access, control, new string[] { fullPath }, checkForDuplicates, needFullPath).Demand(); - } - else - { - EmulateFileIOPermissionChecks(fullPath); - } } - [System.Security.SecuritySafeCritical] - internal static void QuickDemand(FileIOPermissionAccess access, AccessControlActions control, string[] fullPathList, bool checkForDuplicates = true, bool needFullPath = true) - { - if (!CodeAccessSecurityEngine.QuickCheckForAllDemands()) - { - new FileIOPermission(access, control, fullPathList, checkForDuplicates, needFullPath).Demand(); - } - else - { - foreach (string fullPath in fullPathList) - { - EmulateFileIOPermissionChecks(fullPath); - } - } - } -#endif - /// <summary> /// Perform the additional path checks that would normally happen when creating a FileIOPermission object. /// </summary> @@ -1088,18 +842,10 @@ namespace System.Security.Permissions { // Callers should have already made checks for invalid path format via normalization. This method will only make the // additional checks needed to throw the same exceptions that would normally throw when using FileIOPermission. // These checks are done via CheckIllegalCharacters() and StringExpressionSet in AddPathList() above. - // - // We have to check the beginning as some paths may be passed in as path + @"\.", which will be normalized away. - BCLDebug.Assert( - fullPath.StartsWith(Path.NormalizePath(fullPath, fullCheck: false), StringComparison.OrdinalIgnoreCase), - string.Format("path isn't normalized: {0}", fullPath)); +#if !PLATFORM_UNIX // Checking for colon / invalid characters on device paths blocks legitimate access to objects such as named pipes. - if ( -#if FEATURE_PATHCOMPAT - AppContextSwitches.UseLegacyPathHandling || -#endif - !PathInternal.IsDevice(fullPath)) + if (!PathInternal.IsDevice(fullPath)) { // GetFullPath already checks normal invalid path characters. We need to just check additional (wildcard) characters here. // (By calling the standard helper we can allow extended paths \\?\ through when the support is enabled.) @@ -1113,6 +859,7 @@ namespace System.Security.Permissions { throw new NotSupportedException(Environment.GetResourceString("Argument_PathFormatNotSupported")); } } +#endif // !PLATFORM_UNIX } } @@ -1149,7 +896,6 @@ namespace System.Security.Permissions { m_pathDiscovery = pathDiscovery; } - [System.Security.SecurityCritical] // auto-generated public FileIOAccess( String value ) { if (value == null) @@ -1204,7 +950,6 @@ namespace System.Security.Permissions { m_pathDiscovery = operand.m_pathDiscovery; } - [System.Security.SecurityCritical] // auto-generated public void AddExpressions(ArrayList values, bool checkForDuplicates) { m_allFiles = false; @@ -1255,7 +1000,6 @@ namespace System.Security.Permissions { return new FileIOAccess( this ); } - [System.Security.SecuritySafeCritical] // auto-generated public FileIOAccess Union( FileIOAccess operand ) { if (operand == null) @@ -1263,7 +1007,7 @@ namespace System.Security.Permissions { return this.IsEmpty() ? null : this.Copy(); } - Contract.Assert( this.m_pathDiscovery == operand.m_pathDiscovery, "Path discovery settings must match" ); + Debug.Assert( this.m_pathDiscovery == operand.m_pathDiscovery, "Path discovery settings must match" ); if (this.m_allFiles || operand.m_allFiles) { @@ -1273,7 +1017,6 @@ namespace System.Security.Permissions { return new FileIOAccess( this.m_set.Union( operand.m_set ), false, this.m_allLocalFiles || operand.m_allLocalFiles, this.m_pathDiscovery ); } - [System.Security.SecuritySafeCritical] // auto-generated public FileIOAccess Intersect( FileIOAccess operand ) { if (operand == null) @@ -1281,7 +1024,7 @@ namespace System.Security.Permissions { return null; } - Contract.Assert( this.m_pathDiscovery == operand.m_pathDiscovery, "Path discovery settings must match" ); + Debug.Assert( this.m_pathDiscovery == operand.m_pathDiscovery, "Path discovery settings must match" ); if (this.m_allFiles) { @@ -1343,7 +1086,6 @@ namespace System.Security.Permissions { return new FileIOAccess( intersectionSet, false, this.m_allLocalFiles && operand.m_allLocalFiles, this.m_pathDiscovery ); } - [System.Security.SecuritySafeCritical] // auto-generated public bool IsSubsetOf( FileIOAccess operand ) { if (operand == null) @@ -1356,7 +1098,7 @@ namespace System.Security.Permissions { return true; } - Contract.Assert( this.m_pathDiscovery == operand.m_pathDiscovery, "Path discovery settings must match" ); + Debug.Assert( this.m_pathDiscovery == operand.m_pathDiscovery, "Path discovery settings must match" ); if (!((m_pathDiscovery && this.m_set.IsSubsetOfPathDiscovery( operand.m_set )) || this.m_set.IsSubsetOf( operand.m_set ))) { @@ -1400,7 +1142,6 @@ namespace System.Security.Permissions { } } - [SecuritySafeCritical] public override String ToString() { // SafeCritical: all string expression sets are constructed with the throwOnRelative bit set, so @@ -1429,7 +1170,6 @@ namespace System.Security.Permissions { } } - [SecuritySafeCritical] public String[] ToStringArray() { // SafeCritical: all string expression sets are constructed with the throwOnRelative bit set, so @@ -1437,18 +1177,16 @@ namespace System.Security.Permissions { return m_set.UnsafeToStringArray(); } - [System.Security.SecurityCritical] // auto-generated [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)] [SuppressUnmanagedCodeSecurity] internal static extern bool IsLocalDrive(String path); - [System.Security.SecuritySafeCritical] // auto-generated public override bool Equals(Object obj) { FileIOAccess operand = obj as FileIOAccess; if(operand == null) return (IsEmpty() && obj == null); - Contract.Assert( this.m_pathDiscovery == operand.m_pathDiscovery, "Path discovery settings must match" ); + Debug.Assert( this.m_pathDiscovery == operand.m_pathDiscovery, "Path discovery settings must match" ); if(m_pathDiscovery) { if(this.m_allFiles && operand.m_allFiles) diff --git a/src/mscorlib/src/System/Security/Permissions/GACIdentityPermission.cs b/src/mscorlib/src/System/Security/Permissions/GACIdentityPermission.cs index 5c209afb9d..f93f26daa9 100644 --- a/src/mscorlib/src/System/Security/Permissions/GACIdentityPermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/GACIdentityPermission.cs @@ -5,9 +5,6 @@ namespace System.Security.Permissions { using System; -#if FEATURE_CAS_POLICY - using SecurityElement = System.Security.SecurityElement; -#endif // FEATURE_CAS_POLICY using System.Globalization; [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false )] @@ -92,19 +89,6 @@ namespace System.Security.Permissions return this.Copy(); } -#if FEATURE_CAS_POLICY - public override SecurityElement ToXml() - { - SecurityElement securityElement = CodeAccessPermission.CreatePermissionElement( this, "System.Security.Permissions.GacIdentityPermission" ); - return securityElement; - } - - public override void FromXml(SecurityElement securityElement) - { - CodeAccessPermission.ValidateElement(securityElement, this); - } -#endif // FEATURE_CAS_POLICY - /// <internalonly/> int IBuiltInPermission.GetTokenIndex() { diff --git a/src/mscorlib/src/System/Security/Permissions/HostProtectionPermission.cs b/src/mscorlib/src/System/Security/Permissions/HostProtectionPermission.cs index 85be61a00d..c4facbb67e 100644 --- a/src/mscorlib/src/System/Security/Permissions/HostProtectionPermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/HostProtectionPermission.cs @@ -41,11 +41,9 @@ namespace System.Security.Permissions [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly | AttributeTargets.Delegate, AllowMultiple = true, Inherited = false )] [System.Runtime.InteropServices.ComVisible(true)] [Serializable] -#if FEATURE_CORECLR // This needs to be in the asmmeta to enable SecAnnotate to successfully resolve and run the security rules. It gets marked // as internal by BCLRewriter so we are simply marking it as FriendAccessAllowed so it stays in the asmmeta. [System.Runtime.CompilerServices.FriendAccessAllowedAttribute] -#endif // FEATURE_CORECLR #pragma warning disable 618 sealed public class HostProtectionAttribute : CodeAccessSecurityAttribute #pragma warning restore 618 @@ -247,38 +245,6 @@ namespace System.Security.Permissions return new HostProtectionPermission(m_resources); } -#if FEATURE_CAS_POLICY - //------------------------------------------------------ - // - // XML - // - //------------------------------------------------------ - public override SecurityElement ToXml() - { - SecurityElement esd = CodeAccessPermission.CreatePermissionElement( this, this.GetType().FullName ); - if(IsUnrestricted()) - esd.AddAttribute( "Unrestricted", "true" ); - else - esd.AddAttribute( "Resources", XMLUtil.BitFieldEnumToString( typeof( HostProtectionResource ), Resources ) ); - return esd; - } - - public override void FromXml(SecurityElement esd) - { - CodeAccessPermission.ValidateElement( esd, this ); - if (XMLUtil.IsUnrestricted( esd )) - Resources = HostProtectionResource.All; - else - { - String resources = esd.Attribute( "Resources" ); - if (resources == null) - Resources = HostProtectionResource.None; - else - Resources = (HostProtectionResource)Enum.Parse( typeof( HostProtectionResource ), resources ); - } - } -#endif // FEATURE_CAS_POLICY - //------------------------------------------------------ // // OBJECT OVERRIDES diff --git a/src/mscorlib/src/System/Security/Permissions/IsolatedStorageFilePermission.cs b/src/mscorlib/src/System/Security/Permissions/IsolatedStorageFilePermission.cs index 1e11b4aa7f..42bc648c72 100644 --- a/src/mscorlib/src/System/Security/Permissions/IsolatedStorageFilePermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/IsolatedStorageFilePermission.cs @@ -158,19 +158,6 @@ namespace System.Security.Permissions { { return BuiltInPermissionIndex.IsolatedStorageFilePermissionIndex; } - - //------------------------------------------------------ - // - // IsolatedStoragePermission OVERRIDES - // - //------------------------------------------------------ -#if FEATURE_CAS_POLICY - [System.Runtime.InteropServices.ComVisible(false)] - public override SecurityElement ToXml() - { - return base.ToXml( "System.Security.Permissions.IsolatedStorageFilePermission" ); - } -#endif // FEATURE_CAS_POLICY } } diff --git a/src/mscorlib/src/System/Security/Permissions/IsolatedStoragePermission.cs b/src/mscorlib/src/System/Security/Permissions/IsolatedStoragePermission.cs index 308adbdab3..9f09a37098 100644 --- a/src/mscorlib/src/System/Security/Permissions/IsolatedStoragePermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/IsolatedStoragePermission.cs @@ -32,9 +32,6 @@ namespace System.Security.Permissions { [Serializable] -#if !FEATURE_CORECLR - [SecurityPermissionAttribute( SecurityAction.InheritanceDemand, ControlEvidence = true, ControlPolicy = true )] -#endif [System.Runtime.InteropServices.ComVisible(true)] abstract public class IsolatedStoragePermission : CodeAccessPermission, IUnrestrictedPermission @@ -182,93 +179,5 @@ namespace System.Security.Permissions { //------------------------------------------------------ internal static long min(long x,long y) {return x>y?y:x;} internal static long max(long x,long y) {return x<y?y:x;} - -#if FEATURE_CAS_POLICY - //------------------------------------------------------ - // - // PUBLIC ENCODING METHODS - // - //------------------------------------------------------ - - private const String _strUserQuota = "UserQuota"; - private const String _strMachineQuota = "MachineQuota"; - private const String _strExpiry = "Expiry"; - private const String _strPermDat = "Permanent"; - - public override SecurityElement ToXml() - { - return ToXml ( this.GetType().FullName ); - } - - internal SecurityElement ToXml(String permName) - { - SecurityElement esd = CodeAccessPermission.CreatePermissionElement( this, permName ); - if (!IsUnrestricted()) - { - esd.AddAttribute( "Allowed", Enum.GetName( typeof( IsolatedStorageContainment ), m_allowed ) ); - if (m_userQuota>0) - { - esd.AddAttribute(_strUserQuota, (m_userQuota).ToString(CultureInfo.InvariantCulture)) ; - } - if (m_machineQuota>0) - { - esd.AddAttribute(_strMachineQuota, (m_machineQuota).ToString(CultureInfo.InvariantCulture)) ; - } - if (m_expirationDays>0) - { - esd.AddAttribute( _strExpiry, (m_expirationDays).ToString(CultureInfo.InvariantCulture)) ; - } - if (m_permanentData) - { - esd.AddAttribute(_strPermDat, (m_permanentData).ToString()) ; - } - } - else - { - esd.AddAttribute( "Unrestricted", "true" ); - } - return esd; - } - - - public override void FromXml(SecurityElement esd) - { - CodeAccessPermission.ValidateElement( esd, this ); - - m_allowed = IsolatedStorageContainment.None; // default if no match - - if (XMLUtil.IsUnrestricted(esd)) - { - m_allowed = IsolatedStorageContainment.UnrestrictedIsolatedStorage; - } - else - { - String allowed = esd.Attribute( "Allowed" ); - - if (allowed != null) - m_allowed = (IsolatedStorageContainment)Enum.Parse( typeof( IsolatedStorageContainment ), allowed ); - } - - if (m_allowed == IsolatedStorageContainment.UnrestrictedIsolatedStorage) - { - m_userQuota = Int64.MaxValue; - m_machineQuota = Int64.MaxValue; - m_expirationDays = Int64.MaxValue ; - m_permanentData = true; - } - else - { - String param; - param = esd.Attribute (_strUserQuota) ; - m_userQuota = param != null ? Int64.Parse(param, CultureInfo.InvariantCulture) : 0 ; - param = esd.Attribute (_strMachineQuota) ; - m_machineQuota = param != null ? Int64.Parse(param, CultureInfo.InvariantCulture) : 0 ; - param = esd.Attribute (_strExpiry) ; - m_expirationDays = param != null ? Int64.Parse(param, CultureInfo.InvariantCulture) : 0 ; - param = esd.Attribute (_strPermDat) ; - m_permanentData = param != null ? (Boolean.Parse(param)) : false ; - } - } -#endif // FEATURE_CAS_POLICY } } diff --git a/src/mscorlib/src/System/Security/Permissions/PermissionAttributes.cs b/src/mscorlib/src/System/Security/Permissions/PermissionAttributes.cs index f14fb0d1b3..b6ac8ece3c 100644 --- a/src/mscorlib/src/System/Security/Permissions/PermissionAttributes.cs +++ b/src/mscorlib/src/System/Security/Permissions/PermissionAttributes.cs @@ -8,9 +8,6 @@ namespace System.Security.Permissions using System.Security.Util; using System.IO; using System.Security.Policy; -#if FEATURE_MACL - using System.Security.AccessControl; -#endif using System.Text; using System.Threading; using System.Runtime.InteropServices; @@ -23,11 +20,9 @@ namespace System.Security.Permissions using System.Diagnostics.Contracts; [Serializable] -[System.Runtime.InteropServices.ComVisible(true)] -#if !FEATURE_CAS_POLICY + [System.Runtime.InteropServices.ComVisible(true)] // The csharp compiler requires these types to be public, but they are not used elsewhere. [Obsolete("SecurityAction is no longer accessible to application code.")] -#endif public enum SecurityAction { // Demand permission of all caller @@ -62,14 +57,11 @@ namespace System.Security.Permissions RequestRefuse = 10, } - -[Serializable] -[AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false )] -[System.Runtime.InteropServices.ComVisible(true)] -#if !FEATURE_CAS_POLICY + [Serializable] + [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false )] + [System.Runtime.InteropServices.ComVisible(true)] // The csharp compiler requires these types to be public, but they are not used elsewhere. [Obsolete("SecurityAttribute is no longer accessible to application code.")] -#endif public abstract class SecurityAttribute : System.Attribute { /// <internalonly/> @@ -96,7 +88,6 @@ namespace System.Security.Permissions abstract public IPermission CreatePermission(); - [System.Security.SecurityCritical] // auto-generated internal static unsafe IntPtr FindSecurityAttributeTypeHandle(String typeName) { PermissionSet.s_fullTrust.Assert(); @@ -108,13 +99,11 @@ namespace System.Security.Permissions } } -[Serializable] -[AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false )] -[System.Runtime.InteropServices.ComVisible(true)] -#if !FEATURE_CAS_POLICY + [Serializable] + [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false )] + [System.Runtime.InteropServices.ComVisible(true)] // The csharp compiler requires these types to be public, but they are not used elsewhere. [Obsolete("CodeAccessSecurityAttribute is no longer accessible to application code.")] -#endif public abstract class CodeAccessSecurityAttribute : SecurityAttribute { protected CodeAccessSecurityAttribute( SecurityAction action ) @@ -307,12 +296,6 @@ namespace System.Security.Permissions perm.SetPathList( FileIOPermissionAccess.Append, m_append ); if (m_pathDiscovery != null) perm.SetPathList( FileIOPermissionAccess.PathDiscovery, m_pathDiscovery ); -#if FEATURE_MACL - if (m_viewAccess != null) - perm.SetPathList( FileIOPermissionAccess.NoAccess, AccessControlActions.View, new String[] { m_viewAccess }, false ); - if (m_changeAccess != null) - perm.SetPathList( FileIOPermissionAccess.NoAccess, AccessControlActions.Change, new String[] { m_changeAccess }, false ); -#endif perm.AllFiles = m_allFiles; perm.AllLocalFiles = m_allLocalFiles; @@ -384,59 +367,6 @@ namespace System.Security.Permissions } } -#if !FEATURE_CORECLR - // PrincipalPermissionAttribute currently derives from - // CodeAccessSecurityAttribute, even though it's not related to code access - // security. This is because compilers are currently looking for - // CodeAccessSecurityAttribute as a direct parent class rather than - // SecurityAttribute as the root class. - [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = true, Inherited = false )] -[System.Runtime.InteropServices.ComVisible(true)] - [Serializable] - sealed public class PrincipalPermissionAttribute : CodeAccessSecurityAttribute - { - private String m_name = null; - private String m_role = null; - private bool m_authenticated = true; - - public PrincipalPermissionAttribute( SecurityAction action ) - : base( action ) - { - } - - public String Name - { - get { return m_name; } - set { m_name = value; } - } - - public String Role - { - get { return m_role; } - set { m_role = value; } - } - - public bool Authenticated - { - get { return m_authenticated; } - set { m_authenticated = value; } - } - - - public override IPermission CreatePermission() - { - if (m_unrestricted) - { - return new PrincipalPermission( PermissionState.Unrestricted ); - } - else - { - return new PrincipalPermission( m_name, m_role, m_authenticated ); - } - } - } -#endif // !FEATURE_CORECLR - [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false )] [System.Runtime.InteropServices.ComVisible(true)] [Serializable] @@ -570,24 +500,16 @@ namespace System.Security.Permissions perm.SetPathList( RegistryPermissionAccess.Write, m_write ); if (m_create != null) perm.SetPathList( RegistryPermissionAccess.Create, m_create ); -#if FEATURE_MACL - if (m_viewAcl != null) - perm.SetPathList( AccessControlActions.View, m_viewAcl ); - if (m_changeAcl != null) - perm.SetPathList( AccessControlActions.Change, m_changeAcl ); -#endif return perm; } } } [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false )] -[System.Runtime.InteropServices.ComVisible(true)] + [System.Runtime.InteropServices.ComVisible(true)] [Serializable] -#if !FEATURE_CAS_POLICY // The csharp compiler requires these types to be public, but they are not used elsewhere. [Obsolete("SecurityPermissionAttribute is no longer accessible to application code.")] -#endif sealed public class SecurityPermissionAttribute : CodeAccessSecurityAttribute { private SecurityPermissionFlag m_flag = SecurityPermissionFlag.NoFlags; @@ -662,7 +584,7 @@ namespace System.Security.Permissions set { m_flag = value ? m_flag | SecurityPermissionFlag.RemotingConfiguration : m_flag & ~SecurityPermissionFlag.RemotingConfiguration; } } -[System.Runtime.InteropServices.ComVisible(true)] + [System.Runtime.InteropServices.ComVisible(true)] public bool Infrastructure { get { return (m_flag & SecurityPermissionFlag.Infrastructure) != 0; } set { m_flag = value ? m_flag | SecurityPermissionFlag.Infrastructure : m_flag & ~SecurityPermissionFlag.Infrastructure; } @@ -893,170 +815,6 @@ namespace System.Security.Permissions } } } - -#if FEATURE_X509 && FEATURE_CAS_POLICY - [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false )] -[System.Runtime.InteropServices.ComVisible(true)] - [Serializable] - sealed public class PublisherIdentityPermissionAttribute : CodeAccessSecurityAttribute - { - private String m_x509cert = null; - private String m_certFile = null; - private String m_signedFile = null; - - public PublisherIdentityPermissionAttribute( SecurityAction action ) - : base( action ) - { - m_x509cert = null; - m_certFile = null; - m_signedFile = null; - } - - public String X509Certificate { - get { return m_x509cert; } - set { m_x509cert = value; } - } - - public String CertFile { - get { return m_certFile; } - set { m_certFile = value; } - } - - public String SignedFile { - get { return m_signedFile; } - set { m_signedFile = value; } - } - - public override IPermission CreatePermission() - { - if (m_unrestricted) - { - return new PublisherIdentityPermission( PermissionState.Unrestricted ); - } - else - { - if (m_x509cert != null) - { - return new PublisherIdentityPermission( new X509Certificate( System.Security.Util.Hex.DecodeHexString( m_x509cert ) ) ); - } - else if (m_certFile != null) - { - return new PublisherIdentityPermission( System.Security.Cryptography.X509Certificates.X509Certificate.CreateFromCertFile( m_certFile ) ); - } - else if (m_signedFile != null) - { - return new PublisherIdentityPermission( System.Security.Cryptography.X509Certificates.X509Certificate.CreateFromSignedFile( m_signedFile ) ); - } - else - { - return new PublisherIdentityPermission( PermissionState.None ); - } - } - } - } -#endif // #if FEATURE_X509 && FEATURE_CAS_POLICY - -#if !FEATURE_CORECLR -[Serializable] -[AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor - | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, - AllowMultiple=true, Inherited=false)] -[System.Runtime.InteropServices.ComVisible(true)] - public abstract class IsolatedStoragePermissionAttribute : CodeAccessSecurityAttribute - { - /// <internalonly/> - internal long m_userQuota; -#if false - /// <internalonly/> - internal long m_machineQuota; - /// <internalonly/> - internal long m_expirationDays; - /// <internalonly/> - internal bool m_permanentData; -#endif - /// <internalonly/> - internal IsolatedStorageContainment m_allowed; - protected IsolatedStoragePermissionAttribute(SecurityAction action) : base(action) - { - } - - // properties - public long UserQuota { - set{ - m_userQuota = value; - } - get{ - return m_userQuota; - } - } -#if false - internal long MachineQuota { - set{ - m_machineQuota = value; - } - get{ - return m_machineQuota; - } - } - internal long ExpirationDays { - set{ - m_expirationDays = value; - } - get{ - return m_expirationDays; - } - } - internal bool PermanentData { - set{ - m_permanentData = value; - } - get{ - return m_permanentData; - } - } -#endif - public IsolatedStorageContainment UsageAllowed { - set{ - m_allowed = value; - } - get{ - return m_allowed; - } - } - - } - - [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor - | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, - AllowMultiple=true, Inherited=false)] -[System.Runtime.InteropServices.ComVisible(true)] - [Serializable] - sealed public class IsolatedStorageFilePermissionAttribute : IsolatedStoragePermissionAttribute - { - public IsolatedStorageFilePermissionAttribute(SecurityAction action) : base(action) - { - - } - public override IPermission CreatePermission() - { - IsolatedStorageFilePermission p; - if (m_unrestricted) { - p = new IsolatedStorageFilePermission - (PermissionState.Unrestricted); - } else { - p = new IsolatedStorageFilePermission(PermissionState.None); - p.UserQuota = m_userQuota; - p.UsageAllowed = m_allowed; -#if false - p.PermanentData = m_permanentData; - p.MachineQuota = m_machineQuota; - p.ExpirationDays = m_expirationDays; -#endif - } - return p; - } - } -#endif // FEATURE_CORECLR [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false )] [System.Runtime.InteropServices.ComVisible(true)] @@ -1109,66 +867,12 @@ namespace System.Security.Permissions return null; } -#if FEATURE_CAS_POLICY - private PermissionSet BruteForceParseStream(Stream stream) - { - Encoding[] encodings = new Encoding[] { Encoding.UTF8, - Encoding.ASCII, - Encoding.Unicode }; - - StreamReader reader = null; - Exception exception = null; - - for (int i = 0; reader == null && i < encodings.Length; ++i) - { - try - { - stream.Position = 0; - reader = new StreamReader( stream, encodings[i] ); - - return ParsePermissionSet( new Parser(reader) ); - } - catch (Exception e1) - { - if (exception == null) - exception = e1; - } - } - - throw exception; - } - - private PermissionSet ParsePermissionSet(Parser parser) - { - SecurityElement e = parser.GetTopElement(); - PermissionSet permSet = new PermissionSet( PermissionState.None ); - permSet.FromXml( e ); - - return permSet; - } -#endif // FEATURE_CAS_POLICY - -#if FEATURE_CAS_POLICY - [System.Security.SecuritySafeCritical] // auto-generated -#endif public PermissionSet CreatePermissionSet() { if (m_unrestricted) return new PermissionSet( PermissionState.Unrestricted ); else if (m_name != null) -#if FEATURE_CAS_POLICY - return PolicyLevel.GetBuiltInSet( m_name ); -#else return NamedPermissionSet.GetBuiltInSet( m_name ); -#endif // FEATURE_CAS_POLICY -#if FEATURE_CAS_POLICY - else if (m_xml != null) - return ParsePermissionSet( new Parser(m_xml.ToCharArray()) ); - else if (m_hex != null) - return BruteForceParseStream( new MemoryStream(Util.Hex.DecodeHexString(m_hex)) ); - else if (m_file != null) - return BruteForceParseStream( new FileStream( m_file, FileMode.Open, FileAccess.Read) ); -#endif // FEATURE_CAS_POLICY else return new PermissionSet( PermissionState.None ); } diff --git a/src/mscorlib/src/System/Security/Permissions/ReflectionPermission.cs b/src/mscorlib/src/System/Security/Permissions/ReflectionPermission.cs index 2bc3c08ff9..1c9dd7696c 100644 --- a/src/mscorlib/src/System/Security/Permissions/ReflectionPermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/ReflectionPermission.cs @@ -259,45 +259,6 @@ namespace System.Security.Permissions throw new ArgumentException(Environment.GetResourceString("Arg_EnumIllegalVal", (int)type)); Contract.EndContractBlock(); } - -#if FEATURE_CAS_POLICY - //------------------------------------------------------ - // - // PUBLIC ENCODING METHODS - // - //------------------------------------------------------ - - public override SecurityElement ToXml() - { - SecurityElement esd = CodeAccessPermission.CreatePermissionElement( this, "System.Security.Permissions.ReflectionPermission" ); - if (!IsUnrestricted()) - { - esd.AddAttribute( "Flags", XMLUtil.BitFieldEnumToString( typeof( ReflectionPermissionFlag ), m_flags ) ); - } - else - { - esd.AddAttribute( "Unrestricted", "true" ); - } - return esd; - } - - public override void FromXml(SecurityElement esd) - { - CodeAccessPermission.ValidateElement( esd, this ); - if (XMLUtil.IsUnrestricted( esd )) - { - m_flags = ReflectionPermission.AllFlagsAndMore; - return; - } - - Reset () ; - SetUnrestricted (false) ; - - String flags = esd.Attribute( "Flags" ); - if (flags != null) - m_flags = (ReflectionPermissionFlag)Enum.Parse( typeof( ReflectionPermissionFlag ), flags ); - } -#endif // FEATURE_CAS_POLICY /// <internalonly/> int IBuiltInPermission.GetTokenIndex() diff --git a/src/mscorlib/src/System/Security/Permissions/RegistryPermission.cs b/src/mscorlib/src/System/Security/Permissions/RegistryPermission.cs index bf801d625b..c0c51e94a2 100644 --- a/src/mscorlib/src/System/Security/Permissions/RegistryPermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/RegistryPermission.cs @@ -59,14 +59,6 @@ namespace System.Security.Permissions SetPathList( access, pathList ); } -#if FEATURE_MACL - public RegistryPermission( RegistryPermissionAccess access, AccessControlActions control, String pathList ) - { - m_unrestricted = false; - AddPathList( access, control, pathList ); - } -#endif - public void SetPathList( RegistryPermissionAccess access, String pathList ) { VerifyAccess( access ); @@ -85,27 +77,11 @@ namespace System.Security.Permissions AddPathList( access, pathList ); } -#if FEATURE_MACL - internal void SetPathList( AccessControlActions control, String pathList ) - { - m_unrestricted = false; - - if ((control & AccessControlActions.View) != 0) - m_viewAcl = null; - - if ((control & AccessControlActions.Change) != 0) - m_changeAcl = null; - - AddPathList( RegistryPermissionAccess.NoAccess, control, pathList ); - } -#endif - public void AddPathList( RegistryPermissionAccess access, String pathList ) { AddPathList( access, AccessControlActions.None, pathList ); } - [System.Security.SecuritySafeCritical] // auto-generated public void AddPathList( RegistryPermissionAccess access, AccessControlActions control, String pathList ) { VerifyAccess( access ); @@ -130,25 +106,8 @@ namespace System.Security.Permissions m_create = new StringExpressionSet(); m_create.AddExpressions( pathList ); } - -#if FEATURE_MACL - if ((control & AccessControlActions.View) != 0) - { - if (m_viewAcl == null) - m_viewAcl = new StringExpressionSet(); - m_viewAcl.AddExpressions( pathList ); - } - - if ((control & AccessControlActions.Change) != 0) - { - if (m_changeAcl == null) - m_changeAcl = new StringExpressionSet(); - m_changeAcl.AddExpressions( pathList ); - } -#endif } - [SecuritySafeCritical] public String GetPathList( RegistryPermissionAccess access ) { // SafeCritical: these are registry paths, which means we're not leaking file system information here @@ -233,7 +192,6 @@ namespace System.Security.Permissions // //------------------------------------------------------ - [System.Security.SecuritySafeCritical] // auto-generated public override bool IsSubsetOf(IPermission target) { if (target == null) @@ -257,7 +215,6 @@ namespace System.Security.Permissions (this.m_changeAcl == null || this.m_changeAcl.IsSubsetOf( operand.m_changeAcl ))); } - [System.Security.SecuritySafeCritical] // auto-generated public override IPermission Intersect(IPermission target) { if (target == null) @@ -309,7 +266,6 @@ namespace System.Security.Permissions return intersectPermission; } - [System.Security.SecuritySafeCritical] // auto-generated public override IPermission Union(IPermission other) { if (other == null) @@ -391,93 +347,6 @@ namespace System.Security.Permissions } return copy; } - -#if FEATURE_CAS_POLICY - [SecuritySafeCritical] - public override SecurityElement ToXml() - { - // SafeCritical: our string expression sets don't contain paths, so there's no information that - // needs to be guarded in them. - SecurityElement esd = CodeAccessPermission.CreatePermissionElement( this, "System.Security.Permissions.RegistryPermission" ); - if (!IsUnrestricted()) - { - if (this.m_read != null && !this.m_read.IsEmpty()) - { - esd.AddAttribute( "Read", SecurityElement.Escape( m_read.UnsafeToString() ) ); - } - if (this.m_write != null && !this.m_write.IsEmpty()) - { - esd.AddAttribute( "Write", SecurityElement.Escape( m_write.UnsafeToString() ) ); - } - if (this.m_create != null && !this.m_create.IsEmpty()) - { - esd.AddAttribute( "Create", SecurityElement.Escape( m_create.UnsafeToString() ) ); - } - if (this.m_viewAcl != null && !this.m_viewAcl.IsEmpty()) - { - esd.AddAttribute( "ViewAccessControl", SecurityElement.Escape( m_viewAcl.UnsafeToString() ) ); - } - if (this.m_changeAcl != null && !this.m_changeAcl.IsEmpty()) - { - esd.AddAttribute( "ChangeAccessControl", SecurityElement.Escape( m_changeAcl.UnsafeToString() ) ); - } - } - else - { - esd.AddAttribute( "Unrestricted", "true" ); - } - return esd; - } - - public override void FromXml(SecurityElement esd) - { - CodeAccessPermission.ValidateElement( esd, this ); - String et; - - if (XMLUtil.IsUnrestricted( esd )) - { - m_unrestricted = true; - return; - } - - m_unrestricted = false; - m_read = null; - m_write = null; - m_create = null; - m_viewAcl = null; - m_changeAcl = null; - - et = esd.Attribute( "Read" ); - if (et != null) - { - m_read = new StringExpressionSet( et ); - } - - et = esd.Attribute( "Write" ); - if (et != null) - { - m_write = new StringExpressionSet( et ); - } - - et = esd.Attribute( "Create" ); - if (et != null) - { - m_create = new StringExpressionSet( et ); - } - - et = esd.Attribute( "ViewAccessControl" ); - if (et != null) - { - m_viewAcl = new StringExpressionSet( et ); - } - - et = esd.Attribute( "ChangeAccessControl" ); - if (et != null) - { - m_changeAcl = new StringExpressionSet( et ); - } - } -#endif // FEATURE_CAS_POLICY /// <internalonly/> int IBuiltInPermission.GetTokenIndex() diff --git a/src/mscorlib/src/System/Security/Permissions/SecurityPermission.cs b/src/mscorlib/src/System/Security/Permissions/SecurityPermission.cs index b359cc530d..cf3002989d 100644 --- a/src/mscorlib/src/System/Security/Permissions/SecurityPermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/SecurityPermission.cs @@ -16,13 +16,11 @@ namespace System.Security.Permissions using System.Globalization; using System.Diagnostics.Contracts; -[Serializable] + [Serializable] [Flags] -[System.Runtime.InteropServices.ComVisible(true)] -#if !FEATURE_CAS_POLICY + [System.Runtime.InteropServices.ComVisible(true)] // The csharp compiler requires these types to be public, but they are not used elsewhere. [Obsolete("SecurityPermissionFlag is no longer accessible to application code.")] -#endif public enum SecurityPermissionFlag { NoFlags = 0x00, @@ -254,99 +252,9 @@ namespace System.Security.Permissions Contract.EndContractBlock(); } -#if FEATURE_CAS_POLICY - //------------------------------------------------------ - // - // PUBLIC ENCODING METHODS - // - //------------------------------------------------------ - - private const String _strHeaderAssertion = "Assertion"; - private const String _strHeaderUnmanagedCode = "UnmanagedCode"; - private const String _strHeaderExecution = "Execution"; - private const String _strHeaderSkipVerification = "SkipVerification"; - private const String _strHeaderControlThread = "ControlThread"; - private const String _strHeaderControlEvidence = "ControlEvidence"; - private const String _strHeaderControlPolicy = "ControlPolicy"; - private const String _strHeaderSerializationFormatter = "SerializationFormatter"; - private const String _strHeaderControlDomainPolicy = "ControlDomainPolicy"; - private const String _strHeaderControlPrincipal = "ControlPrincipal"; - private const String _strHeaderControlAppDomain = "ControlAppDomain"; - - public override SecurityElement ToXml() - { - SecurityElement esd = CodeAccessPermission.CreatePermissionElement( this, "System.Security.Permissions.SecurityPermission" ); - if (!IsUnrestricted()) - { - esd.AddAttribute( "Flags", XMLUtil.BitFieldEnumToString( typeof( SecurityPermissionFlag ), m_flags ) ); - } - else - { - esd.AddAttribute( "Unrestricted", "true" ); - } - return esd; - } - - public override void FromXml(SecurityElement esd) - { - CodeAccessPermission.ValidateElement( esd, this ); - if (XMLUtil.IsUnrestricted( esd )) - { - m_flags = SecurityPermissionFlag.AllFlags; - return; - } - - Reset () ; - SetUnrestricted (false) ; - - String flags = esd.Attribute( "Flags" ); - - if (flags != null) - m_flags = (SecurityPermissionFlag)Enum.Parse( typeof( SecurityPermissionFlag ), flags ); - } -#endif // FEATURE_CAS_POLICY - // // Object Overrides // - - #if ZERO // Do not remove this code, usefull for debugging - public override String ToString() - { - StringBuilder sb = new StringBuilder(); - sb.Append("SecurityPermission("); - if (IsUnrestricted()) - { - sb.Append("Unrestricted"); - } - else - { - if (GetFlag(SecurityPermissionFlag.Assertion)) - sb.Append("Assertion; "); - if (GetFlag(SecurityPermissionFlag.UnmanagedCode)) - sb.Append("UnmangedCode; "); - if (GetFlag(SecurityPermissionFlag.SkipVerification)) - sb.Append("SkipVerification; "); - if (GetFlag(SecurityPermissionFlag.Execution)) - sb.Append("Execution; "); - if (GetFlag(SecurityPermissionFlag.ControlThread)) - sb.Append("ControlThread; "); - if (GetFlag(SecurityPermissionFlag.ControlEvidence)) - sb.Append("ControlEvidence; "); - if (GetFlag(SecurityPermissionFlag.ControlPolicy)) - sb.Append("ControlPolicy; "); - if (GetFlag(SecurityPermissionFlag.SerializationFormatter)) - sb.Append("SerializationFormatter; "); - if (GetFlag(SecurityPermissionFlag.ControlDomainPolicy)) - sb.Append("ControlDomainPolicy; "); - if (GetFlag(SecurityPermissionFlag.ControlPrincipal)) - sb.Append("ControlPrincipal; "); - } - - sb.Append(")"); - return sb.ToString(); - } - #endif /// <internalonly/> int IBuiltInPermission.GetTokenIndex() diff --git a/src/mscorlib/src/System/Security/Permissions/SiteIdentityPermission.cs b/src/mscorlib/src/System/Security/Permissions/SiteIdentityPermission.cs index 6050b580df..ff38d515a1 100644 --- a/src/mscorlib/src/System/Security/Permissions/SiteIdentityPermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/SiteIdentityPermission.cs @@ -5,9 +5,6 @@ namespace System.Security.Permissions { using System; -#if FEATURE_CAS_POLICY - using SecurityElement = System.Security.SecurityElement; -#endif // FEATURE_CAS_POLICY using SiteString = System.Security.Util.SiteString; using System.Text; using System.Collections; @@ -31,55 +28,6 @@ namespace System.Security.Permissions [OptionalField(VersionAdded = 2)] private SiteString[] m_sites; -#if FEATURE_REMOTING - // This field will be populated only for non X-AD scenarios where we create a XML-ised string of the Permission - [OptionalField(VersionAdded = 2)] - private String m_serializedPermission; - - // This field is legacy info from v1.x and is never used in v2.0 and beyond: purely for serialization purposes - private SiteString m_site; - - [OnDeserialized] - private void OnDeserialized(StreamingContext ctx) - { - // v2.0 and beyond XML case - if (m_serializedPermission != null) - { - FromXml(SecurityElement.FromString(m_serializedPermission)); - m_serializedPermission = null; - } - else if (m_site != null) //v1.x case where we read the m_site value - { - m_unrestricted = false; - m_sites = new SiteString[1]; - m_sites[0] = m_site; - m_site = null; - } - } - - [OnSerializing] - private void OnSerializing(StreamingContext ctx) - { - - if ((ctx.State & ~(StreamingContextStates.Clone|StreamingContextStates.CrossAppDomain)) != 0) - { - m_serializedPermission = ToXml().ToString(); //for the v2 and beyond case - if (m_sites != null && m_sites.Length == 1) // for the v1.x case - m_site = m_sites[0]; - - } - } - [OnSerialized] - private void OnSerialized(StreamingContext ctx) - { - if ((ctx.State & ~(StreamingContextStates.Clone|StreamingContextStates.CrossAppDomain)) != 0) - { - m_serializedPermission = null; - m_site = null; - } - } -#endif // FEATURE_REMOTING - //------------------------------------------------------ // // PUBLIC CONSTRUCTORS @@ -150,8 +98,6 @@ namespace System.Security.Permissions // IPERMISSION IMPLEMENTATION // //------------------------------------------------------ - - public override IPermission Copy() { SiteIdentityPermission perm = new SiteIdentityPermission( PermissionState.None ); @@ -291,60 +237,6 @@ namespace System.Security.Permissions return result; } -#if FEATURE_CAS_POLICY - public override void FromXml(SecurityElement esd) - { - m_unrestricted = false; - m_sites = null; - CodeAccessPermission.ValidateElement( esd, this ); - String unr = esd.Attribute( "Unrestricted" ); - if(unr != null && String.Compare(unr, "true", StringComparison.OrdinalIgnoreCase) == 0) - { - m_unrestricted = true; - return; - } - String elem = esd.Attribute( "Site" ); - List<SiteString> al = new List<SiteString>(); - if(elem != null) - al.Add(new SiteString( elem )); - ArrayList alChildren = esd.Children; - if(alChildren != null) - { - foreach(SecurityElement child in alChildren) - { - elem = child.Attribute( "Site" ); - if(elem != null) - al.Add(new SiteString( elem )); - } - } - if(al.Count != 0) - m_sites = al.ToArray(); - } - - public override SecurityElement ToXml() - { - SecurityElement esd = CodeAccessPermission.CreatePermissionElement( this, "System.Security.Permissions.SiteIdentityPermission" ); - if (m_unrestricted) - esd.AddAttribute( "Unrestricted", "true" ); - else if (m_sites != null) - { - if (m_sites.Length == 1) - esd.AddAttribute( "Site", m_sites[0].ToString() ); - else - { - int n; - for(n = 0; n < m_sites.Length; n++) - { - SecurityElement child = new SecurityElement("Site"); - child.AddAttribute( "Site", m_sites[n].ToString() ); - esd.AddChild(child); - } - } - } - return esd; - } -#endif // FEATURE_CAS_POLICY - /// <internalonly/> int IBuiltInPermission.GetTokenIndex() { diff --git a/src/mscorlib/src/System/Security/Permissions/StrongNameIdentityPermission.cs b/src/mscorlib/src/System/Security/Permissions/StrongNameIdentityPermission.cs index 5f5de0ef80..f09d84de34 100644 --- a/src/mscorlib/src/System/Security/Permissions/StrongNameIdentityPermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/StrongNameIdentityPermission.cs @@ -5,9 +5,6 @@ namespace System.Security.Permissions { using System; -#if FEATURE_CAS_POLICY - using SecurityElement = System.Security.SecurityElement; -#endif // FEATURE_CAS_POLICY using System.Security.Util; using System.IO; using String = System.String; @@ -135,7 +132,7 @@ namespace System.Security.Permissions public StrongNameIdentityPermission( StrongNamePublicKeyBlob blob, String name, Version version ) { if (blob == null) - throw new ArgumentNullException( "blob" ); + throw new ArgumentNullException( nameof(blob) ); if (name != null && name.Equals( "" )) throw new ArgumentException( Environment.GetResourceString( "Argument_EmptyStrongName" ) ); Contract.EndContractBlock(); @@ -156,7 +153,7 @@ namespace System.Security.Permissions set { if (value == null) - throw new ArgumentNullException( "PublicKey" ); + throw new ArgumentNullException( nameof(PublicKey) ); Contract.EndContractBlock(); m_unrestricted = false; if(m_strongNames != null && m_strongNames.Length == 1) @@ -389,89 +386,6 @@ namespace System.Security.Permissions return result; } -#if FEATURE_CAS_POLICY - public override void FromXml(SecurityElement e) - { - m_unrestricted = false; - m_strongNames = null; - CodeAccessPermission.ValidateElement( e, this ); - String unr = e.Attribute( "Unrestricted" ); - if(unr != null && String.Compare(unr, "true", StringComparison.OrdinalIgnoreCase) == 0) - { - m_unrestricted = true; - return; - } - String elBlob = e.Attribute("PublicKeyBlob"); - String elName = e.Attribute("Name"); - String elVersion = e.Attribute("AssemblyVersion"); - StrongName2 sn; - List<StrongName2> al = new List<StrongName2>(); - if(elBlob != null || elName != null || elVersion != null) - { - sn = new StrongName2( - (elBlob == null ? null : new StrongNamePublicKeyBlob(elBlob)), - elName, - (elVersion == null ? null : new Version(elVersion))); - al.Add(sn); - } - ArrayList alChildren = e.Children; - if(alChildren != null) - { - foreach(SecurityElement child in alChildren) - { - elBlob = child.Attribute("PublicKeyBlob"); - elName = child.Attribute("Name"); - elVersion = child.Attribute("AssemblyVersion"); - if(elBlob != null || elName != null || elVersion != null) - { - sn = new StrongName2( - (elBlob == null ? null : new StrongNamePublicKeyBlob(elBlob)), - elName, - (elVersion == null ? null : new Version(elVersion))); - al.Add(sn); - } - } - } - if(al.Count != 0) - m_strongNames = al.ToArray(); - } - - public override SecurityElement ToXml() - { - SecurityElement esd = CodeAccessPermission.CreatePermissionElement( this, "System.Security.Permissions.StrongNameIdentityPermission" ); - if (m_unrestricted) - esd.AddAttribute( "Unrestricted", "true" ); - else if (m_strongNames != null) - { - if (m_strongNames.Length == 1) - { - if (m_strongNames[0].m_publicKeyBlob != null) - esd.AddAttribute("PublicKeyBlob", Hex.EncodeHexString(m_strongNames[0].m_publicKeyBlob.PublicKey)); - if (m_strongNames[0].m_name != null) - esd.AddAttribute("Name", m_strongNames[0].m_name); - if ((Object)m_strongNames[0].m_version != null) - esd.AddAttribute("AssemblyVersion", m_strongNames[0].m_version.ToString()); - } - else - { - int n; - for(n = 0; n < m_strongNames.Length; n++) - { - SecurityElement child = new SecurityElement("StrongName"); - if (m_strongNames[n].m_publicKeyBlob != null) - child.AddAttribute("PublicKeyBlob", Hex.EncodeHexString(m_strongNames[n].m_publicKeyBlob.PublicKey)); - if (m_strongNames[n].m_name != null) - child.AddAttribute("Name", m_strongNames[n].m_name); - if ((Object)m_strongNames[n].m_version != null) - child.AddAttribute("AssemblyVersion", m_strongNames[n].m_version.ToString()); - esd.AddChild(child); - } - } - } - return esd; - } -#endif // FEATURE_CAS_POLICY - /// <internalonly/> int IBuiltInPermission.GetTokenIndex() { diff --git a/src/mscorlib/src/System/Security/Permissions/StrongNamePublicKeyBlob.cs b/src/mscorlib/src/System/Security/Permissions/StrongNamePublicKeyBlob.cs index e0aacaf80c..823eaba938 100644 --- a/src/mscorlib/src/System/Security/Permissions/StrongNamePublicKeyBlob.cs +++ b/src/mscorlib/src/System/Security/Permissions/StrongNamePublicKeyBlob.cs @@ -20,7 +20,7 @@ namespace System.Security.Permissions public StrongNamePublicKeyBlob( byte[] publicKey ) { if (publicKey == null) - throw new ArgumentNullException( "PublicKey" ); + throw new ArgumentNullException( nameof(PublicKey) ); Contract.EndContractBlock(); this.PublicKey = new byte[publicKey.Length]; diff --git a/src/mscorlib/src/System/Security/Permissions/UIPermission.cs b/src/mscorlib/src/System/Security/Permissions/UIPermission.cs index bb122b734c..4abe801e41 100644 --- a/src/mscorlib/src/System/Security/Permissions/UIPermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/UIPermission.cs @@ -309,50 +309,6 @@ namespace System.Security.Permissions { return new UIPermission(this.m_windowFlag, this.m_clipboardFlag); } - -#if FEATURE_CAS_POLICY - public override SecurityElement ToXml() - { - SecurityElement esd = CodeAccessPermission.CreatePermissionElement( this, "System.Security.Permissions.UIPermission" ); - if (!IsUnrestricted()) - { - if (m_windowFlag != UIPermissionWindow.NoWindows) - { - esd.AddAttribute( "Window", Enum.GetName( typeof( UIPermissionWindow ), m_windowFlag ) ); - } - if (m_clipboardFlag != UIPermissionClipboard.NoClipboard) - { - esd.AddAttribute( "Clipboard", Enum.GetName( typeof( UIPermissionClipboard ), m_clipboardFlag ) ); - } - } - else - { - esd.AddAttribute( "Unrestricted", "true" ); - } - return esd; - } - - public override void FromXml(SecurityElement esd) - { - CodeAccessPermission.ValidateElement( esd, this ); - if (XMLUtil.IsUnrestricted( esd )) - { - SetUnrestricted( true ); - return; - } - - m_windowFlag = UIPermissionWindow.NoWindows; - m_clipboardFlag = UIPermissionClipboard.NoClipboard; - - String window = esd.Attribute( "Window" ); - if (window != null) - m_windowFlag = (UIPermissionWindow)Enum.Parse( typeof( UIPermissionWindow ), window ); - - String clipboard = esd.Attribute( "Clipboard" ); - if (clipboard != null) - m_clipboardFlag = (UIPermissionClipboard)Enum.Parse( typeof( UIPermissionClipboard ), clipboard ); - } -#endif // FEATURE_CAS_POLICY /// <internalonly/> int IBuiltInPermission.GetTokenIndex() diff --git a/src/mscorlib/src/System/Security/Permissions/URLIdentityPermission.cs b/src/mscorlib/src/System/Security/Permissions/URLIdentityPermission.cs index e62449cf3e..0883bf8979 100644 --- a/src/mscorlib/src/System/Security/Permissions/URLIdentityPermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/URLIdentityPermission.cs @@ -5,9 +5,6 @@ namespace System.Security.Permissions { using System; -#if FEATURE_CAS_POLICY - using SecurityElement = System.Security.SecurityElement; -#endif // FEATURE_CAS_POLICY using System.Security.Util; using System.IO; using System.Text; @@ -31,58 +28,8 @@ namespace System.Security.Permissions [OptionalField(VersionAdded = 2)] private bool m_unrestricted; - [OptionalField(VersionAdded = 2)] - private URLString[] m_urls; - -#if FEATURE_REMOTING - // This field will be populated only for non X-AD scenarios where we create a XML-ised string of the Permission [OptionalField(VersionAdded = 2)] - private String m_serializedPermission; - - // This field is legacy info from v1.x and is never used in v2.0 and beyond: purely for serialization purposes - private URLString m_url; - - [OnDeserialized] - private void OnDeserialized(StreamingContext ctx) - { - // v2.0 and beyond XML case - if (m_serializedPermission != null) - { - FromXml(SecurityElement.FromString(m_serializedPermission)); - m_serializedPermission = null; - } - else if (m_url != null) //v1.x case where we read the m_site value - { - m_unrestricted = false; - m_urls = new URLString[1]; - m_urls[0] = m_url; - m_url = null; - } - - } - - [OnSerializing] - private void OnSerializing(StreamingContext ctx) - { - - if ((ctx.State & ~(StreamingContextStates.Clone|StreamingContextStates.CrossAppDomain)) != 0) - { - m_serializedPermission = ToXml().ToString(); //for the v2 and beyond case - if (m_urls != null && m_urls.Length == 1) // for the v1.x case - m_url = m_urls[0]; - - } - } - [OnSerialized] - private void OnSerialized(StreamingContext ctx) - { - if ((ctx.State & ~(StreamingContextStates.Clone|StreamingContextStates.CrossAppDomain)) != 0) - { - m_serializedPermission = null; - m_url = null; - } - } -#endif // FEATURE_REMOTING + private URLString[] m_urls; //------------------------------------------------------ // @@ -110,7 +57,7 @@ namespace System.Security.Permissions public UrlIdentityPermission( String site ) { if (site == null) - throw new ArgumentNullException( "site" ); + throw new ArgumentNullException( nameof(site) ); Contract.EndContractBlock(); Url = site; } @@ -323,60 +270,6 @@ namespace System.Security.Permissions return result; } -#if FEATURE_CAS_POLICY - public override void FromXml(SecurityElement esd) - { - m_unrestricted = false; - m_urls = null; - CodeAccessPermission.ValidateElement( esd, this ); - String unr = esd.Attribute( "Unrestricted" ); - if(unr != null && String.Compare(unr, "true", StringComparison.OrdinalIgnoreCase) == 0) - { - m_unrestricted = true; - return; - } - String elem = esd.Attribute( "Url" ); - List<URLString> al = new List<URLString>(); - if(elem != null) - al.Add(new URLString( elem, true )); - ArrayList alChildren = esd.Children; - if(alChildren != null) - { - foreach(SecurityElement child in alChildren) - { - elem = child.Attribute( "Url" ); - if(elem != null) - al.Add(new URLString( elem, true )); - } - } - if(al.Count != 0) - m_urls = al.ToArray(); - } - - public override SecurityElement ToXml() - { - SecurityElement esd = CodeAccessPermission.CreatePermissionElement( this, "System.Security.Permissions.UrlIdentityPermission" ); - if (m_unrestricted) - esd.AddAttribute( "Unrestricted", "true" ); - else if (m_urls != null) - { - if (m_urls.Length == 1) - esd.AddAttribute( "Url", m_urls[0].ToString() ); - else - { - int n; - for(n = 0; n < m_urls.Length; n++) - { - SecurityElement child = new SecurityElement("Url"); - child.AddAttribute( "Url", m_urls[n].ToString() ); - esd.AddChild(child); - } - } - } - return esd; - } -#endif // FEATURE_CAS_POLICY - /// <internalonly/> int IBuiltInPermission.GetTokenIndex() { diff --git a/src/mscorlib/src/System/Security/Permissions/ZoneIdentityPermission.cs b/src/mscorlib/src/System/Security/Permissions/ZoneIdentityPermission.cs index 803bd34cf1..9023c7eece 100644 --- a/src/mscorlib/src/System/Security/Permissions/ZoneIdentityPermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/ZoneIdentityPermission.cs @@ -8,9 +8,6 @@ namespace System.Security.Permissions { using System; -#if FEATURE_CAS_POLICY - using SecurityElement = System.Security.SecurityElement; -#endif // FEATURE_CAS_POLICY using System.Globalization; using System.Runtime.Serialization; using System.Collections; @@ -42,57 +39,6 @@ namespace System.Security.Permissions [OptionalField(VersionAdded = 2)] private uint m_zones; -#if FEATURE_REMOTING - // This field will be populated only for non X-AD scenarios where we create a XML-ised string of the Permission - [OptionalField(VersionAdded = 2)] - private String m_serializedPermission; - - // This field is legacy info from v1.x and is never used in v2.0 and beyond: purely for serialization purposes - private SecurityZone m_zone = SecurityZone.NoZone; - - [OnDeserialized] - private void OnDeserialized(StreamingContext ctx) - { - if ((ctx.State & ~(StreamingContextStates.Clone|StreamingContextStates.CrossAppDomain)) != 0) - { - // v2.0 and beyond XML case - if (m_serializedPermission != null) - { - FromXml(SecurityElement.FromString(m_serializedPermission)); - m_serializedPermission = null; - } - else //v1.x case where we read the m_zone value - { - SecurityZone = m_zone; - m_zone = SecurityZone.NoZone; - } - } - - - } - - [OnSerializing] - private void OnSerializing(StreamingContext ctx) - { - - if ((ctx.State & ~(StreamingContextStates.Clone|StreamingContextStates.CrossAppDomain)) != 0) - { - m_serializedPermission = ToXml().ToString(); //for the v2 and beyond case - m_zone = SecurityZone; - - } - } - [OnSerialized] - private void OnSerialized(StreamingContext ctx) - { - if ((ctx.State & ~(StreamingContextStates.Clone|StreamingContextStates.CrossAppDomain)) != 0) - { - m_serializedPermission = null; - m_zone = SecurityZone.NoZone; - } - } -#endif // FEATURE_REMOTING - //------------------------------------------------------ // // PUBLIC CONSTRUCTORS @@ -247,53 +193,6 @@ namespace System.Security.Permissions return new ZoneIdentityPermission(this.m_zones | that.m_zones); } -#if FEATURE_CAS_POLICY - public override SecurityElement ToXml() - { - SecurityElement esd = CodeAccessPermission.CreatePermissionElement( this, "System.Security.Permissions.ZoneIdentityPermission" ); - if (SecurityZone != SecurityZone.NoZone) - { - esd.AddAttribute( "Zone", Enum.GetName( typeof( SecurityZone ), this.SecurityZone ) ); - } - else - { - int nEnum = 0; - uint nFlag; - for(nFlag = 1; nFlag < AllZones; nFlag <<= 1) - { - if((m_zones & nFlag) != 0) - { - SecurityElement child = new SecurityElement("Zone"); - child.AddAttribute( "Zone", Enum.GetName( typeof( SecurityZone ), (SecurityZone)nEnum ) ); - esd.AddChild(child); - } - nEnum++; - } - } - return esd; - } - - public override void FromXml(SecurityElement esd) - { - m_zones = 0; - CodeAccessPermission.ValidateElement( esd, this ); - String eZone = esd.Attribute( "Zone" ); - if (eZone != null) - SecurityZone = (SecurityZone)Enum.Parse( typeof( SecurityZone ), eZone ); - if(esd.Children != null) - { - foreach(SecurityElement child in esd.Children) - { - eZone = child.Attribute( "Zone" ); - int enm = (int)Enum.Parse( typeof( SecurityZone ), eZone ); - if(enm == (int)SecurityZone.NoZone) - continue; - m_zones |= ((uint)1 << enm); - } - } - } -#endif // FEATURE_CAS_POLICY - /// <internalonly/> int IBuiltInPermission.GetTokenIndex() { diff --git a/src/mscorlib/src/System/Security/Permissions/keycontainerpermission.cs b/src/mscorlib/src/System/Security/Permissions/keycontainerpermission.cs index 9691c03da3..d4f1c273c6 100644 --- a/src/mscorlib/src/System/Security/Permissions/keycontainerpermission.cs +++ b/src/mscorlib/src/System/Security/Permissions/keycontainerpermission.cs @@ -11,6 +11,7 @@ namespace System.Security.Permissions { #endif using System.Security.Util; using System.Globalization; + using System.Diagnostics; using System.Diagnostics.Contracts; [Serializable] @@ -88,7 +89,7 @@ namespace System.Security.Permissions { m_keyStore = "*"; } else { if (value != "User" && value != "Machine" && value != "*") - throw new ArgumentException(Environment.GetResourceString("Argument_InvalidKeyStore", value), "value"); + throw new ArgumentException(Environment.GetResourceString("Argument_InvalidKeyStore", value), nameof(value)); m_keyStore = value; } } @@ -232,7 +233,7 @@ namespace System.Security.Permissions { if (index < 0) throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_EnumNotStarted")); if (index >= Count) - throw new ArgumentOutOfRangeException("index", Environment.GetResourceString("ArgumentOutOfRange_Index")); + throw new ArgumentOutOfRangeException(nameof(index), Environment.GetResourceString("ArgumentOutOfRange_Index")); Contract.EndContractBlock(); return (KeyContainerPermissionAccessEntry)m_list[index]; @@ -247,7 +248,7 @@ namespace System.Security.Permissions { public int Add (KeyContainerPermissionAccessEntry accessEntry) { if (accessEntry == null) - throw new ArgumentNullException("accessEntry"); + throw new ArgumentNullException(nameof(accessEntry)); Contract.EndContractBlock(); int index = m_list.IndexOf(accessEntry); @@ -275,7 +276,7 @@ namespace System.Security.Permissions { public void Remove (KeyContainerPermissionAccessEntry accessEntry) { if (accessEntry == null) - throw new ArgumentNullException("accessEntry"); + throw new ArgumentNullException(nameof(accessEntry)); Contract.EndContractBlock(); m_list.Remove(accessEntry); } @@ -292,11 +293,11 @@ namespace System.Security.Permissions { /// <internalonly/> void ICollection.CopyTo (Array array, int index) { if (array == null) - throw new ArgumentNullException("array"); + throw new ArgumentNullException(nameof(array)); if (array.Rank != 1) throw new ArgumentException(Environment.GetResourceString("Arg_RankMultiDimNotSupported")); if (index < 0 || index >= array.Length) - throw new ArgumentOutOfRangeException("index", Environment.GetResourceString("ArgumentOutOfRange_Index")); + throw new ArgumentOutOfRangeException(nameof(index), Environment.GetResourceString("ArgumentOutOfRange_Index")); if (index + this.Count > array.Length) throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen")); Contract.EndContractBlock(); @@ -385,7 +386,7 @@ namespace System.Security.Permissions { public KeyContainerPermission (KeyContainerPermissionFlags flags, KeyContainerPermissionAccessEntry[] accessList) { if (accessList == null) - throw new ArgumentNullException("accessList"); + throw new ArgumentNullException(nameof(accessList)); Contract.EndContractBlock(); VerifyFlags(flags); @@ -525,61 +526,6 @@ namespace System.Security.Permissions { return cp; } -#if FEATURE_CAS_POLICY - public override SecurityElement ToXml () { - SecurityElement securityElement = CodeAccessPermission.CreatePermissionElement(this, "System.Security.Permissions.KeyContainerPermission"); - if (!IsUnrestricted()) { - securityElement.AddAttribute("Flags", m_flags.ToString()); - if (AccessEntries.Count > 0) { - SecurityElement al = new SecurityElement("AccessList"); - foreach (KeyContainerPermissionAccessEntry accessEntry in AccessEntries) { - SecurityElement entryElem = new SecurityElement("AccessEntry"); - entryElem.AddAttribute("KeyStore", accessEntry.KeyStore); - entryElem.AddAttribute("ProviderName", accessEntry.ProviderName); - entryElem.AddAttribute("ProviderType", accessEntry.ProviderType.ToString(null, null)); - entryElem.AddAttribute("KeyContainerName", accessEntry.KeyContainerName); - entryElem.AddAttribute("KeySpec", accessEntry.KeySpec.ToString(null, null)); - entryElem.AddAttribute("Flags", accessEntry.Flags.ToString()); - al.AddChild(entryElem); - } - securityElement.AddChild(al); - } - } else - securityElement.AddAttribute("Unrestricted", "true"); - - return securityElement; - } - - public override void FromXml (SecurityElement securityElement) { - CodeAccessPermission.ValidateElement(securityElement, this); - if (XMLUtil.IsUnrestricted(securityElement)) { - m_flags = KeyContainerPermissionFlags.AllFlags; - m_accessEntries = new KeyContainerPermissionAccessEntryCollection(m_flags); - return; - } - - m_flags = KeyContainerPermissionFlags.NoFlags; - string strFlags = securityElement.Attribute("Flags"); - if (strFlags != null) { - KeyContainerPermissionFlags flags = (KeyContainerPermissionFlags) Enum.Parse(typeof(KeyContainerPermissionFlags), strFlags); - VerifyFlags(flags); - m_flags = flags; - } - m_accessEntries = new KeyContainerPermissionAccessEntryCollection(m_flags); - - if (securityElement.InternalChildren != null && securityElement.InternalChildren.Count != 0) { - IEnumerator enumerator = securityElement.Children.GetEnumerator(); - while (enumerator.MoveNext()) { - SecurityElement current = (SecurityElement) enumerator.Current; - if (current != null) { - if (String.Equals(current.Tag, "AccessList")) - AddAccessEntries(current); - } - } - } - } -#endif // FEATURE_CAS_POLICY - /// <internalonly/> int IBuiltInPermission.GetTokenIndex () { return KeyContainerPermission.GetTokenIndex(); @@ -597,7 +543,7 @@ namespace System.Security.Permissions { if (current != null) { if (String.Equals(current.Tag, "AccessEntry")) { int iMax = current.m_lAttributes.Count; - Contract.Assert(iMax % 2 == 0, "Odd number of strings means the attr/value pairs were not added correctly"); + Debug.Assert(iMax % 2 == 0, "Odd number of strings means the attr/value pairs were not added correctly"); string keyStore = null; string providerName = null; int providerType = -1; |