Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AutomationFocusChangedEventArgs.cs
- TargetControlTypeAttribute.cs
- Double.cs
- FrameworkElement.cs
- ParagraphResult.cs
- ToolStripTextBox.cs
- SafeCryptoKeyHandle.cs
- MouseWheelEventArgs.cs
- SafeFileMapViewHandle.cs
- ReachPageContentCollectionSerializer.cs
- OperationCanceledException.cs
- LinkTarget.cs
- CompositionTarget.cs
- IProvider.cs
- SourceChangedEventArgs.cs
- ActivityBuilder.cs
- listitem.cs
- QueryComponents.cs
- StateDesigner.LayoutSelectionGlyph.cs
- BamlWriter.cs
- LoginCancelEventArgs.cs
- EditBehavior.cs
- OleDbConnectionInternal.cs
- GiveFeedbackEventArgs.cs
- Converter.cs
- TimeZoneNotFoundException.cs
- StandardRuntimeEnumValidatorAttribute.cs
- FormViewRow.cs
- BaseParagraph.cs
- TypedTableBaseExtensions.cs
- EventLogPermission.cs
- SetMemberBinder.cs
- FilteredDataSetHelper.cs
- Type.cs
- HotCommands.cs
- ToolStripArrowRenderEventArgs.cs
- NonSerializedAttribute.cs
- ToolboxItemLoader.cs
- GridViewDesigner.cs
- XsltLoader.cs
- VScrollProperties.cs
- JournalEntryStack.cs
- MsmqHostedTransportManager.cs
- ServiceContractGenerationContext.cs
- XPathNavigatorReader.cs
- SynchronizedDispatch.cs
- PermissionListSet.cs
- ContentPlaceHolder.cs
- TrackingCondition.cs
- Point4DConverter.cs
- _SafeNetHandles.cs
- OdbcParameterCollection.cs
- TaskFormBase.cs
- OracleColumn.cs
- LocatorGroup.cs
- Item.cs
- EncodingTable.cs
- DataRowComparer.cs
- RtfControlWordInfo.cs
- DiscoveryReferences.cs
- ObjectListCommand.cs
- Touch.cs
- TableLayoutRowStyleCollection.cs
- MailAddressCollection.cs
- Misc.cs
- SafeNativeMethodsCLR.cs
- ValidationEventArgs.cs
- ByteAnimationBase.cs
- ConfigXmlComment.cs
- ClockController.cs
- SQLInt64.cs
- SafeHandle.cs
- Control.cs
- ToolTip.cs
- ListChangedEventArgs.cs
- ErrorStyle.cs
- Ref.cs
- IsolatedStorageFileStream.cs
- Grid.cs
- CorePropertiesFilter.cs
- X509CertificateChain.cs
- ProgressBarBrushConverter.cs
- XmlCharacterData.cs
- TemplateXamlParser.cs
- BrowserCapabilitiesFactoryBase.cs
- FileSecurity.cs
- ThemeableAttribute.cs
- Util.cs
- EventRouteFactory.cs
- sqlinternaltransaction.cs
- RepeaterItem.cs
- StylusLogic.cs
- DefaultAsyncDataDispatcher.cs
- HttpPostProtocolReflector.cs
- ValidationResults.cs
- TransformPattern.cs
- MobileTemplatedControlDesigner.cs
- BuilderElements.cs
- EntityDataSource.cs
- WebBrowser.cs