Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / CommonUI / System / Drawing / IntSecurity.cs / 1 / IntSecurity.cs
namespace System.Drawing { using System; using System.IO; using System.Security; using System.Security.Permissions; using System.Drawing.Printing; 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); internal static void DemandReadFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Read, full).Demand(); } internal static void DemandWriteFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Write, full).Demand(); } 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; 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); internal static void DemandReadFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Read, full).Demand(); } internal static void DemandWriteFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Write, full).Demand(); } 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
- DateTimeSerializationSection.cs
- SingleAnimationUsingKeyFrames.cs
- FormViewCommandEventArgs.cs
- SiteIdentityPermission.cs
- X509ChainElement.cs
- PermissionSetTriple.cs
- HtmlDocument.cs
- ToolStripContainer.cs
- MetafileEditor.cs
- PropertyInfoSet.cs
- RemoteHelper.cs
- TextTreeTextElementNode.cs
- columnmapfactory.cs
- EditorZone.cs
- DNS.cs
- CompositeActivityTypeDescriptor.cs
- PropertyEmitterBase.cs
- HighlightVisual.cs
- NativeWindow.cs
- DynamicPropertyHolder.cs
- HTTPNotFoundHandler.cs
- BooleanProjectedSlot.cs
- SupportingTokenSecurityTokenResolver.cs
- WebPartExportVerb.cs
- PropertyGridView.cs
- ApplicationCommands.cs
- CombinedHttpChannel.cs
- OpenFileDialog.cs
- TabControl.cs
- ServerTooBusyException.cs
- DependencyPropertyDescriptor.cs
- ActivityBuilderHelper.cs
- PrintControllerWithStatusDialog.cs
- ReservationCollection.cs
- OutputCache.cs
- PolicyException.cs
- FlowLayoutPanel.cs
- ErrorEventArgs.cs
- LineSegment.cs
- RoleManagerEventArgs.cs
- ViewgenGatekeeper.cs
- SafeNativeMethods.cs
- TraceUtils.cs
- Pts.cs
- ExpressionPrinter.cs
- Timer.cs
- DbConvert.cs
- WindowsTooltip.cs
- SelectedGridItemChangedEvent.cs
- Condition.cs
- HwndProxyElementProvider.cs
- CollectionChangedEventManager.cs
- XmlSerializerOperationFormatter.cs
- ObjRef.cs
- SqlDataSourceCache.cs
- EntityDesignPluralizationHandler.cs
- DynamicDataExtensions.cs
- InputMethod.cs
- Rect.cs
- GraphicsContainer.cs
- FileDialogPermission.cs
- Form.cs
- FormViewPageEventArgs.cs
- TransformPattern.cs
- VisualStyleTypesAndProperties.cs
- PreservationFileWriter.cs
- TraceEventCache.cs
- DynamicDocumentPaginator.cs
- ListView.cs
- DomNameTable.cs
- ClosureBinding.cs
- CodeConstructor.cs
- QueryConverter.cs
- StylusButtonEventArgs.cs
- InputLangChangeEvent.cs
- ExecutionEngineException.cs
- MonthCalendar.cs
- Bold.cs
- SqlTransaction.cs
- MatrixIndependentAnimationStorage.cs
- MemoryRecordBuffer.cs
- SafeNativeMethods.cs
- CharKeyFrameCollection.cs
- UpnEndpointIdentity.cs
- PhysicalFontFamily.cs
- PtsCache.cs
- TextTreeUndoUnit.cs
- SelectionProcessor.cs
- PolicyUnit.cs
- ServiceHttpHandlerFactory.cs
- ControlPaint.cs
- ImageFormatConverter.cs
- ConsoleTraceListener.cs
- ShaderEffect.cs
- SortExpressionBuilder.cs
- ContextMenuStrip.cs
- MetafileHeaderWmf.cs
- ScriptingSectionGroup.cs
- DesignTimeHTMLTextWriter.cs
- MeasureItemEvent.cs