Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CommonUI / System / Drawing / IntSecurity.cs / 1305376 / IntSecurity.cs
namespace System.Drawing { using System; using System.IO; using System.Security; using System.Security.Permissions; using System.Drawing.Printing; using System.Runtime.Versioning; 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); [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] internal static void DemandReadFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Read, full).Demand(); } [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] internal static void DemandWriteFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Write, full).Demand(); } [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] 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; using System.Runtime.Versioning; 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); [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] internal static void DemandReadFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Read, full).Demand(); } [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] internal static void DemandWriteFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Write, full).Demand(); } [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] 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
- CalloutQueueItem.cs
- Stacktrace.cs
- Module.cs
- TempEnvironment.cs
- DetailsViewPagerRow.cs
- ServiceModelConfigurationSectionCollection.cs
- TraversalRequest.cs
- ZipIOLocalFileBlock.cs
- StorageScalarPropertyMapping.cs
- UnaryOperationBinder.cs
- HttpCookiesSection.cs
- CaseInsensitiveHashCodeProvider.cs
- AppAction.cs
- DocumentSequenceHighlightLayer.cs
- ScrollChrome.cs
- HtmlFormWrapper.cs
- Baml2006ReaderSettings.cs
- complextypematerializer.cs
- WinCategoryAttribute.cs
- DataGridViewCellStateChangedEventArgs.cs
- ImpersonateTokenRef.cs
- SecondaryIndexDefinition.cs
- Ipv6Element.cs
- IPAddressCollection.cs
- InnerItemCollectionView.cs
- CodeExpressionStatement.cs
- FacetValues.cs
- wgx_commands.cs
- UInt16Storage.cs
- ServicePointManager.cs
- LoopExpression.cs
- CorrelationManager.cs
- EUCJPEncoding.cs
- TreeNodeMouseHoverEvent.cs
- ServiceDocumentFormatter.cs
- IntellisenseTextBox.cs
- RTLAwareMessageBox.cs
- ECDiffieHellmanCng.cs
- COM2ExtendedBrowsingHandler.cs
- DelegatedStream.cs
- NumericExpr.cs
- _SecureChannel.cs
- SplitterCancelEvent.cs
- ImageBrush.cs
- CodeNamespaceImport.cs
- ContextStaticAttribute.cs
- XmlSubtreeReader.cs
- SystemThemeKey.cs
- ColorBlend.cs
- mactripleDES.cs
- DoubleAnimation.cs
- SafeProcessHandle.cs
- FrugalMap.cs
- CustomErrorsSectionWrapper.cs
- Point.cs
- FixedSOMImage.cs
- SqlFileStream.cs
- PrintEvent.cs
- MatrixKeyFrameCollection.cs
- PropertyIDSet.cs
- DependencyPropertyKey.cs
- SafeRegistryHandle.cs
- StorageMappingItemLoader.cs
- HttpListenerRequest.cs
- SimpleBitVector32.cs
- CategoryEditor.cs
- Expression.cs
- JapaneseCalendar.cs
- ScrollChangedEventArgs.cs
- ObjectDataSourceView.cs
- DiagnosticStrings.cs
- _NegoStream.cs
- BindingValueChangedEventArgs.cs
- TypeCollectionDesigner.xaml.cs
- SHA256.cs
- StandardToolWindows.cs
- UITypeEditor.cs
- EventSourceCreationData.cs
- VisualBrush.cs
- RegexTree.cs
- NameScopePropertyAttribute.cs
- TreeNode.cs
- DisplayInformation.cs
- CompleteWizardStep.cs
- SoapElementAttribute.cs
- Speller.cs
- WsdlEndpointConversionContext.cs
- LeafCellTreeNode.cs
- GridView.cs
- ResourceExpressionBuilder.cs
- SQLDecimal.cs
- Stroke2.cs
- TextTreeNode.cs
- ScriptingProfileServiceSection.cs
- Pkcs9Attribute.cs
- UnsafeNativeMethods.cs
- ContextMenuService.cs
- SettingsPropertyValueCollection.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- StylusCaptureWithinProperty.cs