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
- MexHttpBindingCollectionElement.cs
- SchemaImporterExtensionElement.cs
- Fonts.cs
- HttpModuleAction.cs
- SessionPageStatePersister.cs
- FileDialogPermission.cs
- MultilineStringEditor.cs
- XamlToRtfWriter.cs
- LocationUpdates.cs
- ResourceCategoryAttribute.cs
- ZoneIdentityPermission.cs
- WSDualHttpSecurityElement.cs
- NotCondition.cs
- ModifierKeysConverter.cs
- ClientSponsor.cs
- DispatcherEventArgs.cs
- DbParameterCollectionHelper.cs
- StoreItemCollection.cs
- InterleavedZipPartStream.cs
- SamlAssertion.cs
- TextHidden.cs
- DesignerTransactionCloseEvent.cs
- Vector3DAnimation.cs
- OdbcUtils.cs
- ConfigurationStrings.cs
- WriterOutput.cs
- CheckBoxRenderer.cs
- BitmapEffectInput.cs
- StylusShape.cs
- Menu.cs
- ValuePattern.cs
- ListSourceHelper.cs
- Adorner.cs
- FrameSecurityDescriptor.cs
- MessagePropertyFilter.cs
- X509Logo.cs
- NotFiniteNumberException.cs
- RoutedEventArgs.cs
- DrawingDrawingContext.cs
- DefaultClaimSet.cs
- BooleanExpr.cs
- TopClause.cs
- ApplicationFileParser.cs
- FileEnumerator.cs
- ConfigurationStrings.cs
- EventBuilder.cs
- UIElement.cs
- Profiler.cs
- UpdateTranslator.cs
- PerformanceCounterCategory.cs
- TextSpan.cs
- ActionFrame.cs
- VectorCollection.cs
- AnonymousIdentificationModule.cs
- BamlResourceContent.cs
- WindowsImpersonationContext.cs
- FilterElement.cs
- DetailsViewInsertEventArgs.cs
- TextTreeTextElementNode.cs
- Baml6Assembly.cs
- SchemaElement.cs
- future.cs
- OneToOneMappingSerializer.cs
- Timeline.cs
- DbConnectionHelper.cs
- ZoneMembershipCondition.cs
- MetadataUtil.cs
- MailWebEventProvider.cs
- Substitution.cs
- WorkflowDebuggerSteppingAttribute.cs
- RuntimeConfigurationRecord.cs
- StylusPointProperty.cs
- EntityDataSourceQueryBuilder.cs
- SecureStringHasher.cs
- DocComment.cs
- _TLSstream.cs
- EntityDataSourceContainerNameConverter.cs
- WSFederationHttpSecurityMode.cs
- Point4DValueSerializer.cs
- SecureEnvironment.cs
- PropertyTab.cs
- COM2PictureConverter.cs
- SecureConversationVersion.cs
- CalendarItem.cs
- SmiContext.cs
- StringCollection.cs
- PeerPresenceInfo.cs
- DropSource.cs
- Ops.cs
- StylusButtonEventArgs.cs
- EmptyReadOnlyDictionaryInternal.cs
- SpecialNameAttribute.cs
- HttpModuleAction.cs
- XsdDateTime.cs
- _LocalDataStoreMgr.cs
- FontSizeConverter.cs
- TabControl.cs
- TPLETWProvider.cs
- ControlCommandSet.cs
- MILUtilities.cs