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
- Module.cs
- XmlAttributeProperties.cs
- FunctionQuery.cs
- StorageAssociationSetMapping.cs
- PartialList.cs
- RadioButtonPopupAdapter.cs
- ConfigurationSettings.cs
- NonParentingControl.cs
- SchemaImporter.cs
- DocComment.cs
- EntityCommand.cs
- FixedSOMSemanticBox.cs
- AsymmetricKeyExchangeDeformatter.cs
- DataReceivedEventArgs.cs
- InputLanguageProfileNotifySink.cs
- RightNameExpirationInfoPair.cs
- ExtensionFile.cs
- XhtmlBasicControlAdapter.cs
- ModelMemberCollection.cs
- WebSysDescriptionAttribute.cs
- SqlEnums.cs
- CultureInfoConverter.cs
- IChannel.cs
- SecurityUtils.cs
- UrlRoutingHandler.cs
- MembershipSection.cs
- NativeWrapper.cs
- ReadOnlyPropertyMetadata.cs
- FixedFlowMap.cs
- DecimalSumAggregationOperator.cs
- ConfigXmlDocument.cs
- Menu.cs
- Inflater.cs
- SchemaTableOptionalColumn.cs
- FilteredDataSetHelper.cs
- ReadOnlyHierarchicalDataSource.cs
- AstNode.cs
- CodeGroup.cs
- MDIControlStrip.cs
- filewebresponse.cs
- Int16Converter.cs
- TriggerActionCollection.cs
- Splitter.cs
- RenderContext.cs
- SessionStateItemCollection.cs
- ContentIterators.cs
- UDPClient.cs
- IFlowDocumentViewer.cs
- ApplicationInfo.cs
- OleDbInfoMessageEvent.cs
- RelationshipDetailsRow.cs
- SQLMoney.cs
- SingleTagSectionHandler.cs
- ToolStripComboBox.cs
- QuadraticEase.cs
- TableColumn.cs
- TrustSection.cs
- ConfigXmlSignificantWhitespace.cs
- CanonicalXml.cs
- XDRSchema.cs
- LogStore.cs
- TCEAdapterGenerator.cs
- ConfigUtil.cs
- ZipIOLocalFileHeader.cs
- StatusBarAutomationPeer.cs
- columnmapkeybuilder.cs
- CultureInfoConverter.cs
- ConfigXmlSignificantWhitespace.cs
- BaseCollection.cs
- Schema.cs
- KnownColorTable.cs
- PackagingUtilities.cs
- OverflowException.cs
- ErrorRuntimeConfig.cs
- cookiecollection.cs
- NameTable.cs
- FrameDimension.cs
- WSSecurityPolicy.cs
- ExpressionContext.cs
- DocumentGridContextMenu.cs
- SourceLineInfo.cs
- VisualTreeHelper.cs
- ManipulationStartingEventArgs.cs
- DataListItem.cs
- QilIterator.cs
- smtpconnection.cs
- SqlXmlStorage.cs
- HtmlInputCheckBox.cs
- UpdateCommand.cs
- ExpressionCopier.cs
- Renderer.cs
- Message.cs
- ConnectionInterfaceCollection.cs
- TemplateManager.cs
- handlecollector.cs
- MultipleViewProviderWrapper.cs
- ToolStripGrip.cs
- MenuItemCollectionEditorDialog.cs
- DifferencingCollection.cs
- SystemIPv6InterfaceProperties.cs