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
- ObjectSet.cs
- DuplexSecurityProtocolFactory.cs
- ToolStripDropDownItem.cs
- PageRanges.cs
- Ticks.cs
- ComNativeDescriptor.cs
- ExecutionEngineException.cs
- SpAudioStreamWrapper.cs
- EntityKeyElement.cs
- MD5.cs
- IQueryable.cs
- X509CertificateValidator.cs
- MenuBindingsEditorForm.cs
- SaveFileDialog.cs
- Base64WriteStateInfo.cs
- PaintEvent.cs
- ComponentCollection.cs
- TraceSection.cs
- SslStream.cs
- CriticalHandle.cs
- WebReferenceCollection.cs
- PreviewPageInfo.cs
- StandardBindingImporter.cs
- EmptyControlCollection.cs
- SoapAttributeAttribute.cs
- EditCommandColumn.cs
- TableLayoutPanelDesigner.cs
- UserValidatedEventArgs.cs
- ConstraintCollection.cs
- PropertyIDSet.cs
- WindowsFormsSynchronizationContext.cs
- PersistChildrenAttribute.cs
- DependencyPropertyHelper.cs
- XmlSubtreeReader.cs
- RemoteCryptoRsaServiceProvider.cs
- DataGridViewIntLinkedList.cs
- RectIndependentAnimationStorage.cs
- TypeBinaryExpression.cs
- JpegBitmapEncoder.cs
- StylusPointProperty.cs
- ErrorHandler.cs
- ScrollBar.cs
- WebZoneDesigner.cs
- StorageAssociationSetMapping.cs
- SerializerProvider.cs
- ObjectCloneHelper.cs
- UpdateTranslator.cs
- ListBoxAutomationPeer.cs
- CodeAccessPermission.cs
- NativeMethodsCLR.cs
- HostedElements.cs
- Track.cs
- ProxyDataContractResolver.cs
- NamespaceInfo.cs
- TakeQueryOptionExpression.cs
- CodeCompiler.cs
- AuditLevel.cs
- SoapFault.cs
- VerticalAlignConverter.cs
- PermissionToken.cs
- DropShadowBitmapEffect.cs
- sqlstateclientmanager.cs
- FlowDocumentReaderAutomationPeer.cs
- X509ChainElement.cs
- ChangeTracker.cs
- sqlmetadatafactory.cs
- SoapClientMessage.cs
- Expressions.cs
- ProcessManager.cs
- ReaderWriterLock.cs
- OleDbSchemaGuid.cs
- HttpConfigurationContext.cs
- XmlExtensionFunction.cs
- StringFreezingAttribute.cs
- ErrorFormatterPage.cs
- BufferAllocator.cs
- GridView.cs
- TextRange.cs
- DataKeyCollection.cs
- TemplateContentLoader.cs
- RegexCapture.cs
- ConsumerConnectionPoint.cs
- CustomAttributeSerializer.cs
- FontStretchConverter.cs
- DeclaredTypeElementCollection.cs
- PolyQuadraticBezierSegment.cs
- Authorization.cs
- RewritingProcessor.cs
- Rfc2898DeriveBytes.cs
- SpeechUI.cs
- SqlBulkCopyColumnMapping.cs
- Set.cs
- Metadata.cs
- ScanQueryOperator.cs
- TiffBitmapEncoder.cs
- InnerItemCollectionView.cs
- InvalidOperationException.cs
- XmlHierarchicalEnumerable.cs
- HttpPostClientProtocol.cs
- ContentPlaceHolder.cs