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
- Border.cs
- DynamicRendererThreadManager.cs
- EntityDataSourceEntityTypeFilterItem.cs
- LoginName.cs
- CodeConstructor.cs
- HScrollBar.cs
- updateconfighost.cs
- NamespaceEmitter.cs
- SpellerError.cs
- XmlSchemaSimpleContent.cs
- WmlLiteralTextAdapter.cs
- FilterQueryOptionExpression.cs
- SqlWriter.cs
- mda.cs
- RuleAction.cs
- DataTable.cs
- TextTreeText.cs
- TableSectionStyle.cs
- SqlCacheDependencyDatabaseCollection.cs
- FactoryGenerator.cs
- LineGeometry.cs
- ScriptControlDescriptor.cs
- EntityDesignerDataSourceView.cs
- Window.cs
- ObjectQueryState.cs
- ResXResourceReader.cs
- TextDecorationCollectionConverter.cs
- AsyncResult.cs
- CallContext.cs
- TabControlCancelEvent.cs
- XslException.cs
- SafeNativeMethods.cs
- SequentialWorkflowHeaderFooter.cs
- ToggleProviderWrapper.cs
- GrammarBuilderDictation.cs
- ToolboxControl.cs
- DocumentOutline.cs
- GatewayIPAddressInformationCollection.cs
- GroupQuery.cs
- ReliableSessionElement.cs
- CursorConverter.cs
- CodeFieldReferenceExpression.cs
- CodeGotoStatement.cs
- COM2ExtendedBrowsingHandler.cs
- NativeMethods.cs
- ProxyAttribute.cs
- MessageBox.cs
- ConcurrentBag.cs
- SynchronizationContext.cs
- httpapplicationstate.cs
- RangeBase.cs
- WebPartDescription.cs
- XamlToRtfParser.cs
- CookieProtection.cs
- SqlResolver.cs
- QueuePathEditor.cs
- CombinedHttpChannel.cs
- DbConnectionPoolIdentity.cs
- _NetRes.cs
- DoubleIndependentAnimationStorage.cs
- ObfuscationAttribute.cs
- MaterialGroup.cs
- RelationalExpressions.cs
- WebPartMinimizeVerb.cs
- FormsAuthenticationModule.cs
- XmlSchemaGroupRef.cs
- Content.cs
- UnknownBitmapEncoder.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- SelectionHighlightInfo.cs
- XmlReaderSettings.cs
- Metafile.cs
- EndpointPerformanceCounters.cs
- RegexGroupCollection.cs
- QuaternionKeyFrameCollection.cs
- _NestedMultipleAsyncResult.cs
- FixedSOMLineCollection.cs
- IteratorDescriptor.cs
- AdapterDictionary.cs
- listitem.cs
- HyperLinkColumn.cs
- xmlfixedPageInfo.cs
- ContentPropertyAttribute.cs
- DataSetMappper.cs
- ManagementOperationWatcher.cs
- PersonalizationStateInfoCollection.cs
- TextViewSelectionProcessor.cs
- ObjectDataProvider.cs
- NullReferenceException.cs
- ProxyWebPart.cs
- DataGridViewEditingControlShowingEventArgs.cs
- CompilerTypeWithParams.cs
- ToolStripPanelCell.cs
- QueryGeneratorBase.cs
- RequestCacheManager.cs
- XmlSchemaExternal.cs
- EnumValAlphaComparer.cs
- ContentPosition.cs
- WebProxyScriptElement.cs
- HttpModuleActionCollection.cs