using System.Security; using System.Web; namespace Umbraco.Core { /// /// Static helper methods for returning information about the current System /// public static class SystemUtilities { private static bool _knowTrustLevel; private static AspNetHostingPermissionLevel _trustLevel; /// /// Get the current trust level of the hosted application /// /// public static AspNetHostingPermissionLevel GetCurrentTrustLevel() { if (_knowTrustLevel) return _trustLevel; foreach (var trustLevel in new[] { AspNetHostingPermissionLevel.Unrestricted, AspNetHostingPermissionLevel.High, AspNetHostingPermissionLevel.Medium, AspNetHostingPermissionLevel.Low, AspNetHostingPermissionLevel.Minimal }) { try { new AspNetHostingPermission(trustLevel).Demand(); } catch (SecurityException) { continue; } _trustLevel = trustLevel; _knowTrustLevel = true; return _trustLevel; } _trustLevel = AspNetHostingPermissionLevel.None; _knowTrustLevel = true; return _trustLevel; } } }