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
- EnumType.cs
- DocumentScope.cs
- FeatureSupport.cs
- TypeUsage.cs
- OciLobLocator.cs
- EmptyImpersonationContext.cs
- Span.cs
- LZCodec.cs
- UiaCoreApi.cs
- Button.cs
- NavigatingCancelEventArgs.cs
- PersonalizationProviderCollection.cs
- ComplexType.cs
- MissingMethodException.cs
- UpdatePanelTrigger.cs
- HttpDictionary.cs
- Function.cs
- ScriptDescriptor.cs
- ImageCodecInfoPrivate.cs
- WindowsButton.cs
- hresults.cs
- KoreanCalendar.cs
- SimpleTextLine.cs
- PropertyInfoSet.cs
- WebPartManagerInternals.cs
- ThreadPool.cs
- CursorConverter.cs
- SizeLimitedCache.cs
- UnknownBitmapEncoder.cs
- ModelPerspective.cs
- ComponentChangingEvent.cs
- OptimizerPatterns.cs
- SelectionHighlightInfo.cs
- WebBaseEventKeyComparer.cs
- WebPartTracker.cs
- Mapping.cs
- PackageRelationshipCollection.cs
- LoginDesignerUtil.cs
- CodeCompiler.cs
- StylusTip.cs
- SchemaLookupTable.cs
- CertificateManager.cs
- FragmentQueryKB.cs
- Preprocessor.cs
- TypeResolvingOptionsAttribute.cs
- Stroke2.cs
- ComplusTypeValidator.cs
- SecurityTokenProvider.cs
- StylusSystemGestureEventArgs.cs
- ProjectionPath.cs
- DataGridViewTextBoxCell.cs
- FilteredAttributeCollection.cs
- Win32Native.cs
- Button.cs
- connectionpool.cs
- SchemaMerger.cs
- ContextStaticAttribute.cs
- EntityModelSchemaGenerator.cs
- DesignerCategoryAttribute.cs
- QilInvoke.cs
- RenderDataDrawingContext.cs
- DataGridItemCollection.cs
- StyleConverter.cs
- OutputScopeManager.cs
- BitmapCacheBrush.cs
- DateTimeFormatInfoScanner.cs
- CodeObject.cs
- PropertyDescriptorComparer.cs
- Missing.cs
- ActivityExecutorDelegateInfo.cs
- LinqDataSourceContextData.cs
- Opcode.cs
- CryptoStream.cs
- OleDbTransaction.cs
- Style.cs
- _SafeNetHandles.cs
- NetworkCredential.cs
- ParseChildrenAsPropertiesAttribute.cs
- DropDownList.cs
- Paragraph.cs
- GridViewUpdateEventArgs.cs
- IntSecurity.cs
- NavigateEvent.cs
- KeyValueConfigurationElement.cs
- PartitionerQueryOperator.cs
- ValueTypePropertyReference.cs
- Pen.cs
- CombinedHttpChannel.cs
- ExecutedRoutedEventArgs.cs
- FamilyTypeface.cs
- SafeBitVector32.cs
- ByteStorage.cs
- Win32MouseDevice.cs
- WebPartVerbCollection.cs
- ProviderMetadata.cs
- PlanCompiler.cs
- TextServicesDisplayAttribute.cs
- DBCommand.cs
- IpcClientManager.cs
- querybuilder.cs