summaryrefslogtreecommitdiff
path: root/src/mscorlib/src/System/Security/SecurityState.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/mscorlib/src/System/Security/SecurityState.cs')
-rw-r--r--src/mscorlib/src/System/Security/SecurityState.cs34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/mscorlib/src/System/Security/SecurityState.cs b/src/mscorlib/src/System/Security/SecurityState.cs
new file mode 100644
index 0000000000..bd23acd813
--- /dev/null
+++ b/src/mscorlib/src/System/Security/SecurityState.cs
@@ -0,0 +1,34 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Security;
+using System.Security.Permissions;
+
+namespace System.Security
+{
+ [System.Security.SecurityCritical] // auto-generated_required
+#pragma warning disable 618
+ [PermissionSet(SecurityAction.InheritanceDemand, Unrestricted = true)]
+#pragma warning restore 618
+ public abstract class SecurityState
+ {
+ protected SecurityState(){}
+
+ [System.Security.SecurityCritical] // auto-generated
+ public bool IsStateAvailable()
+ {
+ AppDomainManager domainManager = AppDomainManager.CurrentAppDomainManager;
+#if FEATURE_CORECLR
+ // CheckSecuritySettings only when appdomainManager is present. So if there is no
+ // appDomain Manager return true as by default coreclr runs in fulltrust.
+ return domainManager != null ? domainManager.CheckSecuritySettings(this) : true;
+#else
+ return domainManager != null ? domainManager.CheckSecuritySettings(this) : false;
+#endif
+ }
+ // override this function and throw the appropriate
+ public abstract void EnsureState();
+ }
+
+}