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
- mda.cs
- OleDbDataAdapter.cs
- DocumentViewerAutomationPeer.cs
- CdpEqualityComparer.cs
- CustomAttributeSerializer.cs
- WebPartZoneBase.cs
- HttpHeaderCollection.cs
- SystemUnicastIPAddressInformation.cs
- ObjectListFieldCollection.cs
- SrgsRuleRef.cs
- GradientSpreadMethodValidation.cs
- DetailsView.cs
- formatter.cs
- RightsManagementEncryptedStream.cs
- ObjectDataSourceStatusEventArgs.cs
- WhitespaceRuleLookup.cs
- UInt32.cs
- BridgeDataRecord.cs
- NativeMethodsOther.cs
- _DomainName.cs
- Misc.cs
- CircleHotSpot.cs
- MsmqIntegrationProcessProtocolHandler.cs
- LabelInfo.cs
- InputProviderSite.cs
- BufferModeSettings.cs
- AliasedExpr.cs
- DbConnectionOptions.cs
- InitializationEventAttribute.cs
- Timer.cs
- CallbackHandler.cs
- HtmlInputText.cs
- SecurityHeaderLayout.cs
- DefaultAsyncDataDispatcher.cs
- Ref.cs
- MemoryRecordBuffer.cs
- SpeakInfo.cs
- NumberAction.cs
- TraceUtility.cs
- ICspAsymmetricAlgorithm.cs
- TCPClient.cs
- DataGridViewLinkCell.cs
- ExpressionEvaluator.cs
- TextRange.cs
- HtmlTable.cs
- EventSinkHelperWriter.cs
- DaylightTime.cs
- MenuBindingsEditorForm.cs
- CodeTypeReferenceExpression.cs
- OleDbReferenceCollection.cs
- Padding.cs
- DataBindingCollection.cs
- CommandID.cs
- ContextBase.cs
- HighlightVisual.cs
- ConnectionStringEditor.cs
- BitSet.cs
- RegexCompiler.cs
- VisualStyleInformation.cs
- AssemblyUtil.cs
- BitmapMetadataEnumerator.cs
- PointCollection.cs
- CreateUserWizard.cs
- TemplateControlCodeDomTreeGenerator.cs
- PhysicalFontFamily.cs
- InvalidCastException.cs
- GridViewPageEventArgs.cs
- TextModifier.cs
- ConnectionManagementElementCollection.cs
- TextBoxLine.cs
- DefaultCommandConverter.cs
- ServiceDefaults.cs
- ScopelessEnumAttribute.cs
- PropertyEntry.cs
- ConnectivityStatus.cs
- Comparer.cs
- ScriptControl.cs
- PtsHost.cs
- WebControlAdapter.cs
- _SslStream.cs
- XPathDocument.cs
- DataGridViewCellValueEventArgs.cs
- RunClient.cs
- PerformanceCounterPermissionEntry.cs
- EasingFunctionBase.cs
- TrustLevelCollection.cs
- MessageEventSubscriptionService.cs
- CellQuery.cs
- BooleanAnimationBase.cs
- CodeTypeParameter.cs
- ContractNamespaceAttribute.cs
- UnmanagedBitmapWrapper.cs
- CriticalFinalizerObject.cs
- DefaultAssemblyResolver.cs
- WsatServiceCertificate.cs
- XmlSchemaExternal.cs
- PropertyGridDesigner.cs
- PathGradientBrush.cs
- UpdatableGenericsFeature.cs
- ResourcePart.cs