Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CommonUI / System / Drawing / IntSecurity.cs / 1305376 / IntSecurity.cs
namespace System.Drawing { using System; using System.IO; using System.Security; using System.Security.Permissions; using System.Drawing.Printing; using System.Runtime.Versioning; internal static class IntSecurity { private static readonly UIPermission AllWindows = new UIPermission(UIPermissionWindow.AllWindows); private static readonly UIPermission SafeSubWindows = new UIPermission(UIPermissionWindow.SafeSubWindows); public static readonly CodeAccessPermission UnmanagedCode = new SecurityPermission(SecurityPermissionFlag.UnmanagedCode); public static readonly CodeAccessPermission ObjectFromWin32Handle = UnmanagedCode; public static readonly CodeAccessPermission Win32HandleManipulation = UnmanagedCode; public static readonly PrintingPermission NoPrinting = new PrintingPermission(PrintingPermissionLevel.NoPrinting); public static readonly PrintingPermission SafePrinting = new PrintingPermission(PrintingPermissionLevel.SafePrinting); public static readonly PrintingPermission DefaultPrinting = new PrintingPermission(PrintingPermissionLevel.DefaultPrinting); public static readonly PrintingPermission AllPrinting = new PrintingPermission(PrintingPermissionLevel.AllPrinting); [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] internal static void DemandReadFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Read, full).Demand(); } [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] internal static void DemandWriteFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Write, full).Demand(); } [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] internal static string UnsafeGetFullPath(string fileName) { string full = fileName; FileIOPermission fiop = new FileIOPermission(PermissionState.None); fiop.AllFiles = FileIOPermissionAccess.PathDiscovery; fiop.Assert(); try { full = Path.GetFullPath(fileName); } finally { CodeAccessPermission.RevertAssert(); } return full; } static PermissionSet allPrintingAndUnmanagedCode; public static PermissionSet AllPrintingAndUnmanagedCode { get { if (allPrintingAndUnmanagedCode == null) { PermissionSet temp = new PermissionSet(PermissionState.None); temp.SetPermission(IntSecurity.UnmanagedCode); temp.SetPermission(IntSecurity.AllPrinting); allPrintingAndUnmanagedCode = temp; } return allPrintingAndUnmanagedCode; } } internal static bool HasPermission(PrintingPermission permission) { try { permission.Demand(); return true; } catch (SecurityException) { return false; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace System.Drawing { using System; using System.IO; using System.Security; using System.Security.Permissions; using System.Drawing.Printing; using System.Runtime.Versioning; internal static class IntSecurity { private static readonly UIPermission AllWindows = new UIPermission(UIPermissionWindow.AllWindows); private static readonly UIPermission SafeSubWindows = new UIPermission(UIPermissionWindow.SafeSubWindows); public static readonly CodeAccessPermission UnmanagedCode = new SecurityPermission(SecurityPermissionFlag.UnmanagedCode); public static readonly CodeAccessPermission ObjectFromWin32Handle = UnmanagedCode; public static readonly CodeAccessPermission Win32HandleManipulation = UnmanagedCode; public static readonly PrintingPermission NoPrinting = new PrintingPermission(PrintingPermissionLevel.NoPrinting); public static readonly PrintingPermission SafePrinting = new PrintingPermission(PrintingPermissionLevel.SafePrinting); public static readonly PrintingPermission DefaultPrinting = new PrintingPermission(PrintingPermissionLevel.DefaultPrinting); public static readonly PrintingPermission AllPrinting = new PrintingPermission(PrintingPermissionLevel.AllPrinting); [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] internal static void DemandReadFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Read, full).Demand(); } [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] internal static void DemandWriteFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Write, full).Demand(); } [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] internal static string UnsafeGetFullPath(string fileName) { string full = fileName; FileIOPermission fiop = new FileIOPermission(PermissionState.None); fiop.AllFiles = FileIOPermissionAccess.PathDiscovery; fiop.Assert(); try { full = Path.GetFullPath(fileName); } finally { CodeAccessPermission.RevertAssert(); } return full; } static PermissionSet allPrintingAndUnmanagedCode; public static PermissionSet AllPrintingAndUnmanagedCode { get { if (allPrintingAndUnmanagedCode == null) { PermissionSet temp = new PermissionSet(PermissionState.None); temp.SetPermission(IntSecurity.UnmanagedCode); temp.SetPermission(IntSecurity.AllPrinting); allPrintingAndUnmanagedCode = temp; } return allPrintingAndUnmanagedCode; } } internal static bool HasPermission(PrintingPermission permission) { try { permission.Demand(); return true; } catch (SecurityException) { return false; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CustomErrorCollection.cs
- TargetControlTypeAttribute.cs
- AmbientLight.cs
- ClientBuildManager.cs
- HybridCollection.cs
- X509Chain.cs
- SessionSwitchEventArgs.cs
- IRCollection.cs
- RelatedView.cs
- XamlSerializerUtil.cs
- InputManager.cs
- LocalsItemDescription.cs
- PartitionerQueryOperator.cs
- SchemaNames.cs
- ToolboxBitmapAttribute.cs
- FtpRequestCacheValidator.cs
- ParameterElementCollection.cs
- TransactionChannelFaultConverter.cs
- BaseParser.cs
- StylusPointProperty.cs
- TextEvent.cs
- HttpRawResponse.cs
- DataGridViewImageColumn.cs
- HtmlFormWrapper.cs
- ExclusiveCanonicalizationTransform.cs
- TickBar.cs
- DoubleUtil.cs
- RegisteredDisposeScript.cs
- CollaborationHelperFunctions.cs
- ReceiveContent.cs
- Constant.cs
- EUCJPEncoding.cs
- NativeMethods.cs
- Stack.cs
- PersonalizationProviderCollection.cs
- ISO2022Encoding.cs
- InitializationEventAttribute.cs
- GacUtil.cs
- TableCellsCollectionEditor.cs
- KeyedCollection.cs
- UnmanagedMemoryStreamWrapper.cs
- MenuAutoFormat.cs
- Encoder.cs
- GcHandle.cs
- Logging.cs
- ProxyGenerator.cs
- ValueChangedEventManager.cs
- WindowsTreeView.cs
- DataTableNewRowEvent.cs
- WinFormsSpinner.cs
- EmbeddedMailObject.cs
- ActivitiesCollection.cs
- XmlAttributeAttribute.cs
- ReturnEventArgs.cs
- XmlCustomFormatter.cs
- RootProfilePropertySettingsCollection.cs
- NameValueSectionHandler.cs
- LoadedOrUnloadedOperation.cs
- SqlTypeConverter.cs
- GeometryGroup.cs
- ScrollViewerAutomationPeer.cs
- SectionRecord.cs
- AssociationSetEnd.cs
- DataGridSortCommandEventArgs.cs
- CalloutQueueItem.cs
- DispatcherFrame.cs
- ITreeGenerator.cs
- BaseComponentEditor.cs
- FontFamily.cs
- FixedSOMElement.cs
- ResourceDisplayNameAttribute.cs
- DataGridViewCellCollection.cs
- BindValidator.cs
- MobilePage.cs
- RootBrowserWindowProxy.cs
- Vector3DAnimationUsingKeyFrames.cs
- BindUriHelper.cs
- StylesEditorDialog.cs
- DNS.cs
- RawMouseInputReport.cs
- ImportStoreException.cs
- CalendarDateRange.cs
- Lazy.cs
- XmlSchemaInfo.cs
- StorageBasedPackageProperties.cs
- HttpHandler.cs
- Quack.cs
- NameTable.cs
- ExpandCollapsePattern.cs
- FormViewUpdatedEventArgs.cs
- TextTreeExtractElementUndoUnit.cs
- TabItem.cs
- EntityViewContainer.cs
- SafeUserTokenHandle.cs
- UnionCodeGroup.cs
- BuildProvider.cs
- ColorContextHelper.cs
- wgx_exports.cs
- TextBoxRenderer.cs
- ReachVisualSerializer.cs