Code:
/ DotNET / DotNET / 8.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
- GeneralTransform.cs
- BamlLocalizableResourceKey.cs
- IndentedWriter.cs
- DataReceivedEventArgs.cs
- ComPlusTraceRecord.cs
- IISUnsafeMethods.cs
- AssemblyAssociatedContentFileAttribute.cs
- ConnectionStringsExpressionBuilder.cs
- BitmapDecoder.cs
- UrlMappingsSection.cs
- FloatAverageAggregationOperator.cs
- FragmentQueryKB.cs
- WebConfigurationHostFileChange.cs
- Menu.cs
- ComboBoxDesigner.cs
- StringUtil.cs
- FilterQuery.cs
- ObjectDataSourceChooseMethodsPanel.cs
- TextLineResult.cs
- TableProviderWrapper.cs
- XmlWrappingReader.cs
- TypeSystemProvider.cs
- InvokeMemberBinder.cs
- _LoggingObject.cs
- WebPartConnectionsConnectVerb.cs
- Authorization.cs
- RootBuilder.cs
- SqlNode.cs
- SafeNativeMethodsMilCoreApi.cs
- SmtpNtlmAuthenticationModule.cs
- ElementHost.cs
- WebBrowserNavigatingEventHandler.cs
- ToolStripMenuItemDesigner.cs
- PageAsyncTask.cs
- ServiceKnownTypeAttribute.cs
- TraceInternal.cs
- UTF7Encoding.cs
- DocumentSequenceHighlightLayer.cs
- SafeNativeMethods.cs
- SecurityProtocolFactory.cs
- HandlerMappingMemo.cs
- DataSourceComponent.cs
- IIS7UserPrincipal.cs
- CallTemplateAction.cs
- LinkClickEvent.cs
- ArrayMergeHelper.cs
- SqlDataSourceSummaryPanel.cs
- ListInitExpression.cs
- ToolStripProgressBar.cs
- InertiaRotationBehavior.cs
- DbProviderFactory.cs
- wgx_sdk_version.cs
- ControlAdapter.cs
- PropertyChange.cs
- RoutedEventHandlerInfo.cs
- BrushConverter.cs
- ToolStripHighContrastRenderer.cs
- WindowsAltTab.cs
- ContractSearchPattern.cs
- GregorianCalendar.cs
- Primitive.cs
- FullTextLine.cs
- DataTableMappingCollection.cs
- ImageAnimator.cs
- ButtonBaseAdapter.cs
- EntitySetBase.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- Vector3DValueSerializer.cs
- InvokeHandlers.cs
- DataControlFieldCell.cs
- SafeViewOfFileHandle.cs
- CompilationRelaxations.cs
- DataFormats.cs
- UnsafePeerToPeerMethods.cs
- ToolboxCategoryItems.cs
- AssemblyAttributesGoHere.cs
- InitiatorSessionSymmetricTransportSecurityProtocol.cs
- DependencyPropertyKind.cs
- MimeFormatter.cs
- AssemblyBuilder.cs
- QuadraticBezierSegment.cs
- AppSettingsReader.cs
- PropertyChangedEventArgs.cs
- Compiler.cs
- AncillaryOps.cs
- CellLabel.cs
- mactripleDES.cs
- SizeFConverter.cs
- DataListGeneralPage.cs
- UnsafeNativeMethods.cs
- ManipulationDeltaEventArgs.cs
- MSAAWinEventWrap.cs
- TreeNodeClickEventArgs.cs
- InvalidComObjectException.cs
- Rotation3DAnimation.cs
- DurableTimerExtension.cs
- SqlTypeSystemProvider.cs
- EncryptedPackageFilter.cs
- LayoutEvent.cs
- NetTcpSectionData.cs