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
- BamlTreeNode.cs
- CommonRemoteMemoryBlock.cs
- SystemDiagnosticsSection.cs
- UnauthorizedWebPart.cs
- ExpressionPrefixAttribute.cs
- TextRunTypographyProperties.cs
- Validator.cs
- RegistrationServices.cs
- TextFormatterImp.cs
- SchemaTableColumn.cs
- ControlCachePolicy.cs
- Int32AnimationBase.cs
- StorageEndPropertyMapping.cs
- BitmapDecoder.cs
- Transform.cs
- coordinatorscratchpad.cs
- XmlSchemaAttributeGroup.cs
- FileDialog_Vista_Interop.cs
- SegmentInfo.cs
- AutoResetEvent.cs
- NativeActivityContext.cs
- VisualStyleRenderer.cs
- WindowCollection.cs
- SQLGuid.cs
- TreeNodeCollectionEditor.cs
- InvalidDataContractException.cs
- ButtonFieldBase.cs
- InternalPolicyElement.cs
- InputScopeConverter.cs
- ServiceContractListItemList.cs
- StyleSelector.cs
- SQLInt16.cs
- ColorBlend.cs
- Sequence.cs
- CapabilitiesRule.cs
- SystemIPInterfaceStatistics.cs
- XmlHierarchyData.cs
- DataObjectFieldAttribute.cs
- DeploymentSectionCache.cs
- ModelItemDictionaryImpl.cs
- Sql8ExpressionRewriter.cs
- RandomNumberGenerator.cs
- MsmqIntegrationSecurity.cs
- TextBoxAutomationPeer.cs
- ResourceContainer.cs
- RecognizedWordUnit.cs
- Int32EqualityComparer.cs
- EditorPartCollection.cs
- ProfileProvider.cs
- DependencyPropertyValueSerializer.cs
- _KerberosClient.cs
- HttpCachePolicyBase.cs
- _SslState.cs
- ServiceDeploymentInfo.cs
- remotingproxy.cs
- Rect3DConverter.cs
- SspiWrapper.cs
- SessionPageStateSection.cs
- TableCellCollection.cs
- HtmlButton.cs
- ApplicationHost.cs
- PanelStyle.cs
- BamlRecordReader.cs
- HttpStaticObjectsCollectionWrapper.cs
- StackOverflowException.cs
- NavigationCommands.cs
- Exceptions.cs
- CodeTypeReferenceCollection.cs
- RoleManagerEventArgs.cs
- PropertyCollection.cs
- InvalidStoreProtectionKeyException.cs
- ComponentCollection.cs
- LiteralTextParser.cs
- EncryptedReference.cs
- VisualTreeHelper.cs
- ProcessHostServerConfig.cs
- Expressions.cs
- GroupItemAutomationPeer.cs
- MsmqAppDomainProtocolHandler.cs
- XmlDataSourceView.cs
- RichTextBoxConstants.cs
- GridViewSelectEventArgs.cs
- DbConnectionInternal.cs
- Constant.cs
- SqlCacheDependencyDatabaseCollection.cs
- CorrelationTokenInvalidatedHandler.cs
- UpDownEvent.cs
- ImmutableDispatchRuntime.cs
- XmlHierarchicalEnumerable.cs
- AbstractSvcMapFileLoader.cs
- ObjectListCommandCollection.cs
- Filter.cs
- PageThemeBuildProvider.cs
- LinqDataSourceValidationException.cs
- _NetworkingPerfCounters.cs
- XPathChildIterator.cs
- SystemTcpConnection.cs
- EntitySqlQueryBuilder.cs
- SmtpNetworkElement.cs
- HttpResponseWrapper.cs