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
- MatrixValueSerializer.cs
- SrgsNameValueTag.cs
- UiaCoreProviderApi.cs
- DynamicHyperLink.cs
- ObjectHandle.cs
- PerformanceCountersElement.cs
- PackWebRequestFactory.cs
- ProxyWebPart.cs
- MultiView.cs
- MultiDataTrigger.cs
- TableColumn.cs
- CollectionDataContractAttribute.cs
- ResponseStream.cs
- SqlParameterizer.cs
- MatrixTransform.cs
- WebScriptMetadataInstanceContextProvider.cs
- CodeTypeReferenceCollection.cs
- SetMemberBinder.cs
- IgnorePropertiesAttribute.cs
- ReferencedAssemblyResolver.cs
- TextElementCollectionHelper.cs
- RoutedUICommand.cs
- OrderToken.cs
- mediaeventargs.cs
- BulletChrome.cs
- GridViewRow.cs
- SafeSecurityHandles.cs
- BrowsableAttribute.cs
- TextParagraphCache.cs
- Border.cs
- SoapHttpTransportImporter.cs
- DelegateSerializationHolder.cs
- XmlSchemaSimpleTypeList.cs
- AggregatePushdown.cs
- Viewport3DVisual.cs
- Shared.cs
- Triplet.cs
- RSAOAEPKeyExchangeDeformatter.cs
- ScriptManager.cs
- SimpleApplicationHost.cs
- ShaderEffect.cs
- AccessibleObject.cs
- PageAsyncTaskManager.cs
- HtmlInputCheckBox.cs
- MetaTableHelper.cs
- PngBitmapDecoder.cs
- HostingEnvironmentSection.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- ADConnectionHelper.cs
- FirstMatchCodeGroup.cs
- AutomationEvent.cs
- WebRequestModuleElementCollection.cs
- TableCell.cs
- PeerCredential.cs
- CheckBoxField.cs
- GridViewRowEventArgs.cs
- CompositeFontFamily.cs
- SQLDecimalStorage.cs
- WebPartManagerInternals.cs
- XmlUtf8RawTextWriter.cs
- SamlAttributeStatement.cs
- CodeGroup.cs
- ProxyManager.cs
- BackStopAuthenticationModule.cs
- ListBoxChrome.cs
- ErrorLog.cs
- Parser.cs
- ThreadStaticAttribute.cs
- GridViewDeleteEventArgs.cs
- TrackingSection.cs
- InkCanvasInnerCanvas.cs
- Operator.cs
- MediaElementAutomationPeer.cs
- HeaderedContentControl.cs
- HashAlgorithm.cs
- PropertyGridView.cs
- SiteMembershipCondition.cs
- JsonEncodingStreamWrapper.cs
- CodeSnippetExpression.cs
- MembershipSection.cs
- NamedPermissionSet.cs
- Odbc32.cs
- SessionStateItemCollection.cs
- versioninfo.cs
- HttpRawResponse.cs
- Request.cs
- CompositeActivityTypeDescriptor.cs
- StandardOleMarshalObject.cs
- DesignerActionService.cs
- AnnotationStore.cs
- SerialPinChanges.cs
- EncodingFallbackAwareXmlTextWriter.cs
- GcHandle.cs
- CallbackHandler.cs
- ProxyAttribute.cs
- OracleParameterBinding.cs
- AnchoredBlock.cs
- DataObjectPastingEventArgs.cs
- ApplicationFileCodeDomTreeGenerator.cs
- StorageEntityContainerMapping.cs