Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- ListViewItem.cs
- GC.cs
- userdatakeys.cs
- HttpPostProtocolReflector.cs
- SplashScreen.cs
- XmlTextReaderImpl.cs
- MarshalDirectiveException.cs
- TextRenderer.cs
- TiffBitmapDecoder.cs
- TreeViewEvent.cs
- DoubleIndependentAnimationStorage.cs
- ComponentCommands.cs
- LineProperties.cs
- TreeViewImageKeyConverter.cs
- IERequestCache.cs
- ExtendedPropertyCollection.cs
- EntitySqlQueryCacheKey.cs
- TextViewDesigner.cs
- DeviceContexts.cs
- EventSetter.cs
- ListBase.cs
- SQLDouble.cs
- HwndTarget.cs
- EnvironmentPermission.cs
- DataServiceRequestException.cs
- LongTypeConverter.cs
- ContentDisposition.cs
- DataSetSchema.cs
- XmlSchemaInferenceException.cs
- DbSourceParameterCollection.cs
- FormsAuthenticationConfiguration.cs
- JsonGlobals.cs
- Matrix3DConverter.cs
- XmlArrayAttribute.cs
- DesignSurfaceManager.cs
- SystemIPInterfaceStatistics.cs
- LoginUtil.cs
- DurableErrorHandler.cs
- SamlDoNotCacheCondition.cs
- TheQuery.cs
- RequestCachingSection.cs
- ControlDesignerState.cs
- LowerCaseStringConverter.cs
- OdbcPermission.cs
- EtwTrackingBehavior.cs
- Closure.cs
- ListViewGroup.cs
- EdmSchemaError.cs
- HatchBrush.cs
- BinaryParser.cs
- SafeEventHandle.cs
- WpfGeneratedKnownProperties.cs
- XPathNavigatorReader.cs
- TextEditorMouse.cs
- ActiveXSite.cs
- ColumnWidthChangedEvent.cs
- TypeInitializationException.cs
- SqlMethods.cs
- WindowsFormsEditorServiceHelper.cs
- DependsOnAttribute.cs
- ModelProperty.cs
- SynchronizedInputAdaptor.cs
- EnvironmentPermission.cs
- EncodingNLS.cs
- ResourceAssociationSet.cs
- ToolStripDropDownItem.cs
- CookielessHelper.cs
- DbCommandTree.cs
- AnimationException.cs
- ToolStrip.cs
- PartitionResolver.cs
- ApplicationSettingsBase.cs
- AddInContractAttribute.cs
- StrokeFIndices.cs
- TdsParserHelperClasses.cs
- BitmapCodecInfo.cs
- PageSetupDialog.cs
- DbConvert.cs
- dtdvalidator.cs
- CodeValidator.cs
- CngKeyBlobFormat.cs
- TemplateComponentConnector.cs
- Vector.cs
- SocketElement.cs
- QueryTaskGroupState.cs
- RemotingHelper.cs
- FigureHelper.cs
- Rotation3DAnimation.cs
- TickBar.cs
- ComEventsSink.cs
- GestureRecognitionResult.cs
- ActivityCodeDomReferenceService.cs
- Behavior.cs
- SuppressMergeCheckAttribute.cs
- FixedPosition.cs
- MediaElementAutomationPeer.cs
- Boolean.cs
- ObjectReferenceStack.cs
- SoapServerMessage.cs
- NCryptNative.cs