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
- BindingMAnagerBase.cs
- ObjectMaterializedEventArgs.cs
- Model3DGroup.cs
- HostProtectionPermission.cs
- MediaContextNotificationWindow.cs
- EventWaitHandleSecurity.cs
- DateTimeParse.cs
- PartialArray.cs
- SqlRowUpdatedEvent.cs
- ThicknessAnimation.cs
- DecimalAnimation.cs
- SqlServices.cs
- DoubleConverter.cs
- SynchronousSendBindingElement.cs
- XmlBoundElement.cs
- DbParameterCollectionHelper.cs
- isolationinterop.cs
- GeneratedCodeAttribute.cs
- RefreshResponseInfo.cs
- JoinGraph.cs
- WmiEventSink.cs
- RadioButtonStandardAdapter.cs
- StrongNameUtility.cs
- ArgumentValidation.cs
- WebServiceParameterData.cs
- CodeVariableReferenceExpression.cs
- PageOutputColor.cs
- TogglePatternIdentifiers.cs
- CompoundFileStorageReference.cs
- TableItemProviderWrapper.cs
- IndexedGlyphRun.cs
- NameValuePair.cs
- PageWrapper.cs
- MenuItemBindingCollection.cs
- Wizard.cs
- Pair.cs
- TagElement.cs
- PhysicalOps.cs
- SapiGrammar.cs
- ConcatQueryOperator.cs
- TreeNodeCollectionEditor.cs
- SwitchElementsCollection.cs
- LogicalExpr.cs
- RegionInfo.cs
- ServiceDiscoveryBehavior.cs
- ListenerConnectionDemuxer.cs
- DataGridColumnReorderingEventArgs.cs
- Screen.cs
- CngProvider.cs
- OdbcParameter.cs
- ListCollectionView.cs
- OdbcRowUpdatingEvent.cs
- StateFinalizationActivity.cs
- FtpRequestCacheValidator.cs
- PersonalizationProvider.cs
- NetSectionGroup.cs
- RenderData.cs
- Random.cs
- StringPropertyBuilder.cs
- StorageTypeMapping.cs
- ExpressionEditorAttribute.cs
- Function.cs
- TableLayoutSettingsTypeConverter.cs
- GroupItem.cs
- DoubleCollection.cs
- Mutex.cs
- FrameworkContentElement.cs
- DocumentViewerAutomationPeer.cs
- TypeDelegator.cs
- HtmlEmptyTagControlBuilder.cs
- X509SecurityTokenProvider.cs
- RawStylusInputCustomData.cs
- DataRelationPropertyDescriptor.cs
- NamedPermissionSet.cs
- CompressEmulationStream.cs
- PropertyDescriptorGridEntry.cs
- BatchParser.cs
- Aggregates.cs
- FieldMetadata.cs
- Ipv6Element.cs
- ClusterRegistryConfigurationProvider.cs
- ServiceProviders.cs
- BinaryUtilClasses.cs
- TargetControlTypeAttribute.cs
- NamedPermissionSet.cs
- Site.cs
- BmpBitmapDecoder.cs
- RetrieveVirtualItemEventArgs.cs
- Utils.cs
- Int32RectConverter.cs
- FontFamily.cs
- RequiredFieldValidator.cs
- RotateTransform.cs
- SoapServerMethod.cs
- CreateUserWizardStep.cs
- SmtpSection.cs
- util.cs
- MultiSelectRootGridEntry.cs
- PasswordPropertyTextAttribute.cs
- SessionState.cs