[bcl] Rename FEATURE_MONO_CAS to MONO_FEATURE_CAS
[mono.git] / mcs / class / referencesource / System / compmod / system / componentmodel / IntSecurity.cs
1 //------------------------------------------------------------------------------
2 // <copyright file="IntSecurity.cs" company="Microsoft">
3 //     Copyright (c) Microsoft Corporation.  All rights reserved.
4 // </copyright>                                                                
5 //------------------------------------------------------------------------------
6
7 namespace System.ComponentModel {
8     using System;
9     using System.Security;
10     using System.Security.Permissions;
11
12     [HostProtection(SharedState = true)]
13     internal static class IntSecurity {
14 #if MONO_FEATURE_CAS
15         public static readonly CodeAccessPermission UnmanagedCode = new SecurityPermission(SecurityPermissionFlag.UnmanagedCode);
16         public static readonly CodeAccessPermission FullReflection = new ReflectionPermission(PermissionState.Unrestricted);
17 #endif
18
19         public static string UnsafeGetFullPath(string fileName) {
20 #if MONO_FEATURE_CAS
21             string full = fileName;
22
23             FileIOPermission fiop = new FileIOPermission(PermissionState.None);
24             fiop.AllFiles = FileIOPermissionAccess.PathDiscovery;
25             fiop.Assert();
26             try {
27                 full = System.IO.Path.GetFullPath(fileName);
28             }
29             finally {
30                 CodeAccessPermission.RevertAssert();
31             }
32             return full;
33 #else
34             return System.IO.Path.GetFullPath(fileName);
35 #endif
36         }
37     }
38 }