Updates referencesource to .NET 4.7
[mono.git] / mcs / class / referencesource / mscorlib / system / security / securitystate.cs
1 // ==++==
2 // 
3 //   Copyright (c) Microsoft Corporation.  All rights reserved.
4 // 
5 // <OWNER>Microsoft</OWNER>
6
7 using System;
8 using System.Security;
9 using System.Security.Permissions;
10
11 namespace System.Security
12 {
13     [System.Security.SecurityCritical]  // auto-generated_required
14 #pragma warning disable 618
15     [PermissionSet(SecurityAction.InheritanceDemand, Unrestricted = true)]
16 #pragma warning restore 618
17     public abstract class SecurityState
18     {
19         protected SecurityState(){}
20         
21         [System.Security.SecurityCritical]  // auto-generated
22         public bool IsStateAvailable()
23         {
24             AppDomainManager domainManager = AppDomainManager.CurrentAppDomainManager;
25 #if FEATURE_CORECLR
26             // CheckSecuritySettings only when appdomainManager is present. So if there is no 
27             // appDomain Manager return true as by default coreclr runs in fulltrust. 
28             return domainManager != null ? domainManager.CheckSecuritySettings(this) : true;
29 #else
30             return domainManager != null ? domainManager.CheckSecuritySettings(this) : false;
31 #endif
32         }
33         // override this function and throw the appropriate 
34         public abstract void EnsureState();
35     }
36
37 }