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
- CustomCredentialPolicy.cs
- IFlowDocumentViewer.cs
- DataPagerFieldCommandEventArgs.cs
- StylusButton.cs
- InheritanceUI.cs
- HttpGetServerProtocol.cs
- ToggleButtonAutomationPeer.cs
- OdbcCommand.cs
- OperatorExpressions.cs
- PageContent.cs
- ApplicationDirectory.cs
- DbXmlEnabledProviderManifest.cs
- StateMachineDesignerPaint.cs
- MILUtilities.cs
- RelationalExpressions.cs
- SQLMoney.cs
- DataGridViewTextBoxColumn.cs
- CodeAttributeDeclaration.cs
- SerialErrors.cs
- PropertyInfoSet.cs
- SystemEvents.cs
- ApplicationDirectoryMembershipCondition.cs
- SafeCryptoHandles.cs
- HiddenFieldPageStatePersister.cs
- FilteredDataSetHelper.cs
- RoleBoolean.cs
- LicenseProviderAttribute.cs
- PluralizationServiceUtil.cs
- ADMembershipUser.cs
- CommandEventArgs.cs
- InvokeAction.cs
- ContentPresenter.cs
- SplitterPanelDesigner.cs
- HtmlInputRadioButton.cs
- PropertyRef.cs
- UnmanagedHandle.cs
- TextModifierScope.cs
- CSharpCodeProvider.cs
- Stacktrace.cs
- ByteStorage.cs
- BaseParser.cs
- ToolStripPanelSelectionBehavior.cs
- ElementProxy.cs
- Button.cs
- ShaderEffect.cs
- FlowchartSizeFeature.cs
- MaskDescriptor.cs
- TimeEnumHelper.cs
- PackUriHelper.cs
- WinCategoryAttribute.cs
- _FixedSizeReader.cs
- Enum.cs
- ZoneButton.cs
- FileDialog_Vista.cs
- Stack.cs
- TraceHandlerErrorFormatter.cs
- FastEncoder.cs
- XmlDataDocument.cs
- SharedTcpTransportManager.cs
- ConnectionPointCookie.cs
- SynchronizedInputProviderWrapper.cs
- SQLSingle.cs
- IxmlLineInfo.cs
- ResourceBinder.cs
- HttpWebRequestElement.cs
- WindowsScrollBarBits.cs
- InkCanvasInnerCanvas.cs
- SafeNativeMethods.cs
- XamlSerializationHelper.cs
- DataPointer.cs
- X509Certificate2Collection.cs
- MetabaseReader.cs
- AnnotationService.cs
- RepeatBehavior.cs
- XslTransformFileEditor.cs
- StylusTip.cs
- CfgParser.cs
- BaseAddressPrefixFilterElementCollection.cs
- BinaryExpressionHelper.cs
- PreparingEnlistment.cs
- OleDbMetaDataFactory.cs
- NeutralResourcesLanguageAttribute.cs
- RichListBox.cs
- BitmapEffectState.cs
- PasswordBox.cs
- ListViewGroupItemCollection.cs
- Trace.cs
- ThreadStaticAttribute.cs
- SqlDataSourceWizardForm.cs
- SpecularMaterial.cs
- SkipStoryboardToFill.cs
- NavigationPropertySingletonExpression.cs
- CommonXSendMessage.cs
- FontFamilyValueSerializer.cs
- SeparatorAutomationPeer.cs
- TextComposition.cs
- GacUtil.cs
- WpfWebRequestHelper.cs
- AtomicFile.cs
- ToolStripPanel.cs