Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- ViewEventArgs.cs
- SQLMoneyStorage.cs
- PageThemeParser.cs
- RootBrowserWindow.cs
- Viewport3DAutomationPeer.cs
- RedBlackList.cs
- TextSpanModifier.cs
- ScalarRestriction.cs
- MimeReturn.cs
- TableCellsCollectionEditor.cs
- StateManagedCollection.cs
- RequiredFieldValidator.cs
- SortKey.cs
- CredentialManagerDialog.cs
- BinaryConverter.cs
- ProgramNode.cs
- SmiEventSink.cs
- FocusTracker.cs
- CqlWriter.cs
- PolyBezierSegment.cs
- Ipv6Element.cs
- TreeView.cs
- CodeTypeConstructor.cs
- PerformanceCounterManager.cs
- FrameAutomationPeer.cs
- HotSpotCollection.cs
- NativeMethods.cs
- ReadOnlyDataSourceView.cs
- ReferencedAssemblyResolver.cs
- OdbcInfoMessageEvent.cs
- CodeParameterDeclarationExpressionCollection.cs
- CqlGenerator.cs
- SqlVersion.cs
- DataGridParentRows.cs
- _IPv6Address.cs
- HebrewCalendar.cs
- Point4D.cs
- Win32Exception.cs
- ColumnReorderedEventArgs.cs
- SocketStream.cs
- ConsoleKeyInfo.cs
- bidPrivateBase.cs
- validationstate.cs
- MouseWheelEventArgs.cs
- FileDialogCustomPlacesCollection.cs
- IncrementalCompileAnalyzer.cs
- XmlJsonReader.cs
- RequestCache.cs
- Cursors.cs
- MachineKeySection.cs
- Compress.cs
- TreeNodeCollection.cs
- EntityStoreSchemaGenerator.cs
- StrokeDescriptor.cs
- SplitterPanel.cs
- PhysicalAddress.cs
- FileDialogCustomPlace.cs
- KeyboardEventArgs.cs
- BlobPersonalizationState.cs
- Label.cs
- ZipIOLocalFileHeader.cs
- Types.cs
- Utility.cs
- OdbcError.cs
- KeyboardDevice.cs
- RequestResizeEvent.cs
- HtmlElementEventArgs.cs
- PageCatalogPart.cs
- LambdaReference.cs
- XmlHierarchicalEnumerable.cs
- ScriptingAuthenticationServiceSection.cs
- SecurityTokenSerializer.cs
- ColumnResizeAdorner.cs
- BinaryOperationBinder.cs
- RichTextBoxDesigner.cs
- FilteredDataSetHelper.cs
- PrintPageEvent.cs
- DataGridItem.cs
- login.cs
- arc.cs
- TypeDescriptionProviderAttribute.cs
- Menu.cs
- SerializationObjectManager.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- PageVisual.cs
- QilStrConcatenator.cs
- DataGridLinkButton.cs
- WebPartTracker.cs
- ObjectDataSourceEventArgs.cs
- EntityRecordInfo.cs
- PersianCalendar.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- MachineKeySection.cs
- TraceUtility.cs
- StatusBarPanelClickEvent.cs
- ScrollViewer.cs
- BitStack.cs
- AnonymousIdentificationModule.cs
- RunClient.cs
- ReadOnlyAttribute.cs