Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- TextServicesLoader.cs
- WebConvert.cs
- _UriSyntax.cs
- StyleSheetComponentEditor.cs
- SurrogateSelector.cs
- StringHandle.cs
- EventPropertyMap.cs
- StyleModeStack.cs
- WebPartHeaderCloseVerb.cs
- _SpnDictionary.cs
- BitmapMetadataBlob.cs
- ImageAutomationPeer.cs
- HwndStylusInputProvider.cs
- TemplateParser.cs
- SrgsItemList.cs
- CommentAction.cs
- VectorValueSerializer.cs
- FormCollection.cs
- ObjectListField.cs
- Baml6Assembly.cs
- LabelDesigner.cs
- DataGridViewColumnEventArgs.cs
- PropertyMappingExceptionEventArgs.cs
- PresentationSource.cs
- XamlClipboardData.cs
- SystemWebCachingSectionGroup.cs
- ReadOnlyDataSource.cs
- PackageDigitalSignatureManager.cs
- XmlBaseReader.cs
- NotifyParentPropertyAttribute.cs
- ValueExpressions.cs
- TextDecorations.cs
- CfgArc.cs
- XhtmlCssHandler.cs
- TypedCompletedAsyncResult.cs
- FixedSOMTableCell.cs
- ConstantProjectedSlot.cs
- StylusCaptureWithinProperty.cs
- Identifier.cs
- AtlasWeb.Designer.cs
- WaitForChangedResult.cs
- RuleSettingsCollection.cs
- IPGlobalProperties.cs
- ObjectDataSourceMethodEventArgs.cs
- StylusCaptureWithinProperty.cs
- DataKey.cs
- CodeArgumentReferenceExpression.cs
- ADMembershipUser.cs
- SiteMap.cs
- PropertyEntry.cs
- HttpEncoderUtility.cs
- DeviceContext.cs
- ConfigXmlComment.cs
- CanonicalXml.cs
- DetailsViewPagerRow.cs
- StateChangeEvent.cs
- DynamicRendererThreadManager.cs
- HandledMouseEvent.cs
- PropertyRecord.cs
- ClientBuildManager.cs
- RuleEngine.cs
- UriTemplateTrieNode.cs
- BaseParaClient.cs
- TypeLoadException.cs
- SecurityPermission.cs
- CommonObjectSecurity.cs
- HttpResponseHeader.cs
- PerformanceCounterManager.cs
- SmtpNetworkElement.cs
- ScrollEvent.cs
- CloudCollection.cs
- TemplateBamlRecordReader.cs
- FeatureAttribute.cs
- CompositionCommandSet.cs
- Timeline.cs
- safemediahandle.cs
- BufferAllocator.cs
- JournalEntryStack.cs
- TypeInitializationException.cs
- HtmlButton.cs
- PropertyRef.cs
- MatrixCamera.cs
- MaskedTextBoxDesigner.cs
- XmlTextAttribute.cs
- ComplexType.cs
- ToolStripOverflowButton.cs
- DbConnectionPoolOptions.cs
- AutomationPatternInfo.cs
- ContextStack.cs
- CodeMemberMethod.cs
- ClientOperation.cs
- ImageSource.cs
- IndependentAnimationStorage.cs
- DrawingBrush.cs
- CellIdBoolean.cs
- Socket.cs
- RawStylusSystemGestureInputReport.cs
- PropertyPathWorker.cs
- Comparer.cs
- ContentType.cs