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
- GenericTypeParameterBuilder.cs
- DynamicObjectAccessor.cs
- BinaryReader.cs
- SystemWebExtensionsSectionGroup.cs
- Command.cs
- Ref.cs
- TextServicesPropertyRanges.cs
- MetadataArtifactLoaderCompositeResource.cs
- ProjectionPathBuilder.cs
- _DisconnectOverlappedAsyncResult.cs
- MenuItem.cs
- ServiceContractViewControl.cs
- SqlConnectionFactory.cs
- PageThemeCodeDomTreeGenerator.cs
- OperationCanceledException.cs
- DataTableExtensions.cs
- NodeLabelEditEvent.cs
- InvalidOleVariantTypeException.cs
- ToolTipService.cs
- TableAutomationPeer.cs
- ProfessionalColorTable.cs
- DataGridViewLinkColumn.cs
- FilteredReadOnlyMetadataCollection.cs
- GeometryHitTestResult.cs
- log.cs
- HelpHtmlBuilder.cs
- EventProviderClassic.cs
- AssertFilter.cs
- ScrollContentPresenter.cs
- DataMember.cs
- EqualityComparer.cs
- BeginStoryboard.cs
- FamilyMapCollection.cs
- XmlSchemas.cs
- Int64Animation.cs
- EventDescriptor.cs
- JulianCalendar.cs
- DiagnosticsConfiguration.cs
- DateTimeFormat.cs
- ShapeTypeface.cs
- OutputCacheModule.cs
- FixedTextSelectionProcessor.cs
- ProcessModelSection.cs
- Size.cs
- DbBuffer.cs
- NamespaceList.cs
- GPPOINTF.cs
- DashStyles.cs
- IndexingContentUnit.cs
- HttpListenerPrefixCollection.cs
- SystemSounds.cs
- WorkflowServiceHost.cs
- BlurBitmapEffect.cs
- sqlpipe.cs
- XmlUTF8TextWriter.cs
- CollaborationHelperFunctions.cs
- KnownBoxes.cs
- XmlComment.cs
- TransferRequestHandler.cs
- SafeArrayTypeMismatchException.cs
- DisplayInformation.cs
- XmlCountingReader.cs
- X509ServiceCertificateAuthenticationElement.cs
- TypeToken.cs
- XmlBuffer.cs
- DataPagerField.cs
- ObjectIDGenerator.cs
- ControlPaint.cs
- TextComposition.cs
- ProfileSettings.cs
- StreamWithDictionary.cs
- SimpleColumnProvider.cs
- X509SubjectKeyIdentifierClause.cs
- DispatcherExceptionEventArgs.cs
- XmlSchemaSet.cs
- DoubleAverageAggregationOperator.cs
- RequestCachePolicyConverter.cs
- XPathNavigatorReader.cs
- ReferenceConverter.cs
- updateconfighost.cs
- XmlQualifiedName.cs
- CodeBinaryOperatorExpression.cs
- SessionParameter.cs
- DataObject.cs
- CDSsyncETWBCLProvider.cs
- XmlWriterSettings.cs
- datacache.cs
- SettingsBindableAttribute.cs
- SrgsGrammarCompiler.cs
- ExtensionFile.cs
- RoleBoolean.cs
- BooleanAnimationBase.cs
- TypedElement.cs
- TileBrush.cs
- FunctionDetailsReader.cs
- ScriptRef.cs
- ListViewUpdatedEventArgs.cs
- CodeCatchClause.cs
- WindowsClaimSet.cs
- XPathItem.cs