Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- StructuralType.cs
- TypeElement.cs
- TemplateBindingExpression.cs
- JsonFormatGeneratorStatics.cs
- UserNameSecurityToken.cs
- AuthenticationModuleElementCollection.cs
- COM2Properties.cs
- MD5CryptoServiceProvider.cs
- FloaterBaseParagraph.cs
- BufferBuilder.cs
- GridViewCellAutomationPeer.cs
- Latin1Encoding.cs
- RepeatButtonAutomationPeer.cs
- FacetValueContainer.cs
- OleCmdHelper.cs
- _Semaphore.cs
- _BaseOverlappedAsyncResult.cs
- ListCollectionView.cs
- EntitySet.cs
- DBCommandBuilder.cs
- BaseCAMarshaler.cs
- SHA384.cs
- xml.cs
- VoiceObjectToken.cs
- TileBrush.cs
- BindingUtils.cs
- CalendarDataBindingHandler.cs
- NavigationWindow.cs
- login.cs
- XPathItem.cs
- MasterPageBuildProvider.cs
- ContractReference.cs
- AccessibilityHelperForVista.cs
- IntegerValidatorAttribute.cs
- ConstrainedDataObject.cs
- ObjectDataSourceView.cs
- ControlParameter.cs
- nulltextcontainer.cs
- Label.cs
- ClosureBinding.cs
- XmlQualifiedName.cs
- NotificationContext.cs
- basenumberconverter.cs
- TypeExtensionConverter.cs
- EditingCoordinator.cs
- IISMapPath.cs
- AssemblyUtil.cs
- DBNull.cs
- GeometryConverter.cs
- SelectionHighlightInfo.cs
- KeyPullup.cs
- DataGridRowAutomationPeer.cs
- DeviceContext.cs
- ToggleButtonAutomationPeer.cs
- SimpleRecyclingCache.cs
- XmlDocumentType.cs
- ClusterSafeNativeMethods.cs
- BitmapCache.cs
- SqlDataSourceView.cs
- Pointer.cs
- TimelineGroup.cs
- WorkflowMarkupElementEventArgs.cs
- MenuAutoFormat.cs
- SchemaElementLookUpTable.cs
- PropertyDescriptorCollection.cs
- TabItemAutomationPeer.cs
- SafeArrayRankMismatchException.cs
- FontFamilyConverter.cs
- ActivityExecutorOperation.cs
- PropertyReference.cs
- DSASignatureFormatter.cs
- MimeFormReflector.cs
- AttachedProperty.cs
- DataGridViewSelectedCellCollection.cs
- _ProxyRegBlob.cs
- XmlCodeExporter.cs
- XmlSchemaSequence.cs
- CodeTypeDeclaration.cs
- CorrelationKey.cs
- SafeMILHandle.cs
- Size.cs
- TextUtf8RawTextWriter.cs
- ObjectAnimationUsingKeyFrames.cs
- StringCollectionMarkupSerializer.cs
- PartialTrustVisibleAssembly.cs
- TextRange.cs
- SqlDataReaderSmi.cs
- OleDbRowUpdatingEvent.cs
- ExpandCollapsePattern.cs
- ProfileParameter.cs
- ScrollChrome.cs
- PasswordDeriveBytes.cs
- RoutedPropertyChangedEventArgs.cs
- Parser.cs
- Image.cs
- __ConsoleStream.cs
- OleDbException.cs
- Baml2006ReaderContext.cs
- PackWebResponse.cs
- BitmapEffectInputData.cs