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
- PersonalizationEntry.cs
- ContactManager.cs
- DataGridViewSelectedCellCollection.cs
- ZipPackage.cs
- NativeWindow.cs
- WebHttpBinding.cs
- ActivationServices.cs
- WorkflowServiceBehavior.cs
- StylusPointProperties.cs
- ToolboxItemCollection.cs
- XmlBinaryWriter.cs
- ListControl.cs
- DefaultObjectMappingItemCollection.cs
- Slider.cs
- DictationGrammar.cs
- GeneratedView.cs
- ScriptHandlerFactory.cs
- ProxyAttribute.cs
- VarInfo.cs
- MimeParameters.cs
- AuthorizationRule.cs
- InvalidProgramException.cs
- DateTimeFormatInfo.cs
- ConfigXmlReader.cs
- FixedSOMPageConstructor.cs
- WhiteSpaceTrimStringConverter.cs
- SequenceNumber.cs
- FormView.cs
- ByteBufferPool.cs
- XsdValidatingReader.cs
- processwaithandle.cs
- SerializationObjectManager.cs
- PropertyInformationCollection.cs
- ContainerParagraph.cs
- FontFamilyValueSerializer.cs
- Graphics.cs
- DiscoveryDocumentSerializer.cs
- MILUtilities.cs
- SmtpMail.cs
- ConfigXmlText.cs
- CodeStatement.cs
- PathTooLongException.cs
- UpDownBase.cs
- SkewTransform.cs
- UpdatePanelTriggerCollection.cs
- ProcessRequestArgs.cs
- InheritanceService.cs
- EditorAttribute.cs
- ModelItemDictionaryImpl.cs
- ConfigXmlElement.cs
- RankException.cs
- UpdateRecord.cs
- NavigationProgressEventArgs.cs
- MexBindingElement.cs
- __Filters.cs
- CodeNamespaceImport.cs
- JoinSymbol.cs
- ZipFileInfo.cs
- TypeInfo.cs
- DependencyObjectValidator.cs
- BulletedListEventArgs.cs
- XmlTextReader.cs
- AuthorizationRuleCollection.cs
- RIPEMD160Managed.cs
- HtmlElementCollection.cs
- BrowserDefinitionCollection.cs
- TCEAdapterGenerator.cs
- BatchServiceHost.cs
- PeerMaintainer.cs
- FrugalList.cs
- _OSSOCK.cs
- OptimizerPatterns.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- XmlDocumentType.cs
- InputLanguageCollection.cs
- CodeAssignStatement.cs
- InternalConfigRoot.cs
- DiscardableAttribute.cs
- Console.cs
- GeneralTransform3D.cs
- Matrix3D.cs
- IndexerNameAttribute.cs
- CircleHotSpot.cs
- _NativeSSPI.cs
- XmlBindingWorker.cs
- SerializationObjectManager.cs
- DataGridColumnEventArgs.cs
- TypeDelegator.cs
- SoapMessage.cs
- XmlQueryTypeFactory.cs
- ControlDesigner.cs
- SqlTransaction.cs
- ParameterModifier.cs
- DesignerLoader.cs
- PropertyManager.cs
- ImageListStreamer.cs
- UnionCqlBlock.cs
- DummyDataSource.cs
- FieldReference.cs
- DefaultPrintController.cs