Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- ListArgumentProvider.cs
- Mappings.cs
- AndCondition.cs
- RankException.cs
- SurrogateEncoder.cs
- ConstNode.cs
- AnonymousIdentificationModule.cs
- XmlSchemaSimpleTypeRestriction.cs
- AutoGeneratedFieldProperties.cs
- RichTextBox.cs
- CollectionBuilder.cs
- PartManifestEntry.cs
- AutomationProperty.cs
- ImportContext.cs
- XmlExtensionFunction.cs
- PropertyPathWorker.cs
- BulletDecorator.cs
- ProcessModelInfo.cs
- WebPartExportVerb.cs
- TextEmbeddedObject.cs
- ICspAsymmetricAlgorithm.cs
- EventPropertyMap.cs
- InputProcessorProfilesLoader.cs
- ValueTypeFixupInfo.cs
- WebPartHeaderCloseVerb.cs
- CorruptingExceptionCommon.cs
- ParamArrayAttribute.cs
- UpdatePanelControlTrigger.cs
- WebPartEventArgs.cs
- OdbcInfoMessageEvent.cs
- SqlStream.cs
- DataGridViewElement.cs
- CodeMethodReturnStatement.cs
- DefaultMemberAttribute.cs
- TraceContext.cs
- ConnectionManagementSection.cs
- SqlDelegatedTransaction.cs
- pingexception.cs
- RelOps.cs
- BindingMemberInfo.cs
- StringComparer.cs
- ModelPropertyImpl.cs
- UTF8Encoding.cs
- AsymmetricCryptoHandle.cs
- HttpHandlerActionCollection.cs
- _NegoStream.cs
- SQLBoolean.cs
- RowSpanVector.cs
- DesignerDataTable.cs
- XmlSchemaSimpleTypeUnion.cs
- XmlStreamNodeWriter.cs
- DataControlLinkButton.cs
- CodeTypeDelegate.cs
- DurationConverter.cs
- ObservableCollection.cs
- AnnotationAdorner.cs
- WindowsSlider.cs
- SessionState.cs
- AxHostDesigner.cs
- CustomError.cs
- _SSPIWrapper.cs
- ByteAnimationUsingKeyFrames.cs
- BitmapEffectDrawingContent.cs
- ImplicitInputBrush.cs
- CodeMethodInvokeExpression.cs
- StringCollection.cs
- SessionEndingEventArgs.cs
- PeerPresenceInfo.cs
- FormsAuthenticationConfiguration.cs
- DataTemplate.cs
- SQLSingle.cs
- Trigger.cs
- DefaultPropertyAttribute.cs
- DataControlField.cs
- DesignerEditorPartChrome.cs
- DefaultTextStore.cs
- XmlChildNodes.cs
- TagMapCollection.cs
- MemoryMappedFile.cs
- EventDrivenDesigner.cs
- AtomEntry.cs
- EngineSiteSapi.cs
- ServicesExceptionNotHandledEventArgs.cs
- CodeTypeParameter.cs
- BufferModeSettings.cs
- DateTime.cs
- TextBreakpoint.cs
- HtmlPageAdapter.cs
- ToolStripRenderEventArgs.cs
- DisposableCollectionWrapper.cs
- NextPreviousPagerField.cs
- BindingSource.cs
- IndexObject.cs
- DbSetClause.cs
- UserNameSecurityTokenProvider.cs
- ProgressChangedEventArgs.cs
- DataSourceCache.cs
- TransactionFilter.cs
- EntityDataSourceDesigner.cs
- EtwTrackingBehaviorElement.cs