Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CommonUI / System / Drawing / IntSecurity.cs / 1305376 / IntSecurity.cs
namespace System.Drawing { using System; using System.IO; using System.Security; using System.Security.Permissions; using System.Drawing.Printing; using System.Runtime.Versioning; 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); [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] internal static void DemandReadFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Read, full).Demand(); } [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] internal static void DemandWriteFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Write, full).Demand(); } [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] 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
- CellPartitioner.cs
- _NestedMultipleAsyncResult.cs
- HashHelper.cs
- SrgsNameValueTag.cs
- AuthenticationSection.cs
- GradientStopCollection.cs
- ObjectTag.cs
- SByte.cs
- FileDialog_Vista_Interop.cs
- panel.cs
- FontFamilyIdentifier.cs
- X509SecurityTokenProvider.cs
- RegexReplacement.cs
- EntityReference.cs
- BinaryReader.cs
- ContainerSelectorBehavior.cs
- HttpClientCertificate.cs
- RuleSettings.cs
- UriExt.cs
- TrackingServices.cs
- DefaultPrintController.cs
- InternalDuplexChannelListener.cs
- NegationPusher.cs
- InvalidDataException.cs
- LinkDescriptor.cs
- Button.cs
- XmlSchemaAnnotated.cs
- ProxyElement.cs
- GetPageCompletedEventArgs.cs
- OdbcReferenceCollection.cs
- CustomExpression.cs
- OleDbFactory.cs
- MethodExpr.cs
- ItemTypeToolStripMenuItem.cs
- XmlQueryType.cs
- Switch.cs
- WebPartUserCapability.cs
- DaylightTime.cs
- TemplateBindingExtension.cs
- CodeAccessSecurityEngine.cs
- PeerPresenceInfo.cs
- ChildChangedEventArgs.cs
- MethodCallTranslator.cs
- MDIWindowDialog.cs
- BindingMemberInfo.cs
- DelegateHelpers.Generated.cs
- PageHandlerFactory.cs
- LinkTarget.cs
- SymDocumentType.cs
- WmlListAdapter.cs
- Transform3D.cs
- TaskScheduler.cs
- FrugalMap.cs
- SqlXmlStorage.cs
- StylusOverProperty.cs
- ThemeableAttribute.cs
- ButtonColumn.cs
- ServicePointManagerElement.cs
- StringTraceRecord.cs
- ServicesUtilities.cs
- TextServicesLoader.cs
- SecurityHeaderElementInferenceEngine.cs
- TypeConverterValueSerializer.cs
- UIElement.cs
- SqlDataSourceEnumerator.cs
- StorageModelBuildProvider.cs
- RequestStatusBarUpdateEventArgs.cs
- TiffBitmapDecoder.cs
- Context.cs
- XmlSchemaSimpleContentRestriction.cs
- _ContextAwareResult.cs
- PermissionToken.cs
- InstanceLockQueryResult.cs
- QueryOutputWriter.cs
- PathFigure.cs
- ImageAttributes.cs
- XmlEntity.cs
- _ContextAwareResult.cs
- DefaultMemberAttribute.cs
- ChannelTraceRecord.cs
- Utils.cs
- SettingsProperty.cs
- DocumentEventArgs.cs
- ObjectSecurity.cs
- TreeViewDesigner.cs
- TimeSpanValidator.cs
- SignatureConfirmations.cs
- PersonalizationProvider.cs
- XPathNodeIterator.cs
- XmlBindingWorker.cs
- CompositeCollection.cs
- DesignerView.xaml.cs
- InputScope.cs
- AtomServiceDocumentSerializer.cs
- DataServiceClientException.cs
- UserControl.cs
- Ticks.cs
- Subtree.cs
- DragEventArgs.cs
- RowParagraph.cs