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
- NavigationEventArgs.cs
- FieldNameLookup.cs
- VScrollProperties.cs
- ThicknessAnimationUsingKeyFrames.cs
- wgx_exports.cs
- XmlToDatasetMap.cs
- ObjectDataSourceEventArgs.cs
- HwndTarget.cs
- TransformProviderWrapper.cs
- ReadOnlyObservableCollection.cs
- RepeatButton.cs
- BrushValueSerializer.cs
- PolyBezierSegment.cs
- DeobfuscatingStream.cs
- TypeSemantics.cs
- CachedBitmap.cs
- WindowsFormsLinkLabel.cs
- ConfigXmlDocument.cs
- ListSourceHelper.cs
- DesignerVerbToolStripMenuItem.cs
- EventMappingSettingsCollection.cs
- EmptyCollection.cs
- ErrorReporting.cs
- XmlElementList.cs
- CompositeFontInfo.cs
- QilPatternFactory.cs
- SqlInternalConnection.cs
- ParallelSeparator.xaml.cs
- HtmlToClrEventProxy.cs
- Rule.cs
- WindowClosedEventArgs.cs
- DataGrid.cs
- TypeLibConverter.cs
- SqlRecordBuffer.cs
- HybridObjectCache.cs
- Assert.cs
- TimeZoneNotFoundException.cs
- SelfIssuedAuthProofToken.cs
- CodeMemberField.cs
- DataComponentGenerator.cs
- PersonalizablePropertyEntry.cs
- XamlTypeMapperSchemaContext.cs
- XmlDataImplementation.cs
- SafeFileMappingHandle.cs
- DesignerLoader.cs
- ComponentResourceKeyConverter.cs
- MouseGestureConverter.cs
- EventArgs.cs
- EditCommandColumn.cs
- Grammar.cs
- NavigationProgressEventArgs.cs
- ToolStripItemRenderEventArgs.cs
- SetterBase.cs
- COM2PropertyDescriptor.cs
- HtmlMeta.cs
- AttributeXamlType.cs
- ComponentCache.cs
- WebPartEditVerb.cs
- EndpointDiscoveryMetadata11.cs
- DefaultSerializationProviderAttribute.cs
- WebPartTransformerCollection.cs
- MouseDevice.cs
- DataGridViewCell.cs
- SingleResultAttribute.cs
- SmtpNegotiateAuthenticationModule.cs
- EventPrivateKey.cs
- ExpressionPrefixAttribute.cs
- XmlCompatibilityReader.cs
- DataGridViewCellParsingEventArgs.cs
- SqlFunctionAttribute.cs
- WindowVisualStateTracker.cs
- TextTreeTextBlock.cs
- BitmapEffectRenderDataResource.cs
- VisualBasicImportReference.cs
- PtsCache.cs
- AliasedSlot.cs
- ProgressBarBrushConverter.cs
- PriorityQueue.cs
- XamlToRtfParser.cs
- BulletDecorator.cs
- LongValidatorAttribute.cs
- Clock.cs
- FamilyCollection.cs
- XamlStyleSerializer.cs
- Lookup.cs
- PropertyDescriptorGridEntry.cs
- RootDesignerSerializerAttribute.cs
- WebPartVerb.cs
- TdsParserStaticMethods.cs
- GetKeyedHashRequest.cs
- StorageComplexTypeMapping.cs
- C14NUtil.cs
- _Connection.cs
- ISO2022Encoding.cs
- CoreSwitches.cs
- MetadataArtifactLoaderCompositeFile.cs
- ToolStripDropDownItem.cs
- EventDescriptor.cs
- SmtpLoginAuthenticationModule.cs
- XmlDocumentSchema.cs