Code:
/ FX-1434 / FX-1434 / 1.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
- ResourceType.cs
- XmlSchemaInfo.cs
- DebugViewWriter.cs
- XmlSchema.cs
- HotSpotCollection.cs
- invalidudtexception.cs
- handlecollector.cs
- ListViewAutomationPeer.cs
- TypeSchema.cs
- HighContrastHelper.cs
- ToolStripRenderer.cs
- CodeFieldReferenceExpression.cs
- WpfPayload.cs
- CompressStream.cs
- EntityContainerEmitter.cs
- DllNotFoundException.cs
- RegistryExceptionHelper.cs
- UpdateRecord.cs
- DispatcherHookEventArgs.cs
- SmtpNetworkElement.cs
- PeerCollaboration.cs
- Mappings.cs
- ValuePattern.cs
- DBDataPermission.cs
- TemplatePartAttribute.cs
- ScriptModule.cs
- DataRecordObjectView.cs
- ClientFactory.cs
- JoinCqlBlock.cs
- SqlIdentifier.cs
- CodeGeneratorOptions.cs
- SynchronizedKeyedCollection.cs
- DoubleAnimationUsingPath.cs
- XmlSchemaValidationException.cs
- XmlSchemaSimpleContentExtension.cs
- TextBoxBaseDesigner.cs
- Assembly.cs
- FunctionMappingTranslator.cs
- CodeLabeledStatement.cs
- HtmlTableCellCollection.cs
- ApplicationProxyInternal.cs
- FileStream.cs
- TextViewDesigner.cs
- ToolStripPanelCell.cs
- CachedFontFace.cs
- LateBoundBitmapDecoder.cs
- TreeNodeSelectionProcessor.cs
- WebPartVerbsEventArgs.cs
- TargetParameterCountException.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- HostingEnvironmentException.cs
- URLIdentityPermission.cs
- ParameterModifier.cs
- DocumentViewerConstants.cs
- MethodCallTranslator.cs
- XmlDsigSep2000.cs
- MethodAccessException.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- MonthCalendar.cs
- XmlDocument.cs
- TransformerInfo.cs
- ResponseStream.cs
- TraceSwitch.cs
- SmiTypedGetterSetter.cs
- TablePatternIdentifiers.cs
- RegionData.cs
- FontStyle.cs
- DesignerVerbCollection.cs
- ProfilePropertySettings.cs
- BamlReader.cs
- SerializationSectionGroup.cs
- GestureRecognitionResult.cs
- RegexInterpreter.cs
- StyleSelector.cs
- ResourceDictionaryCollection.cs
- SmiRecordBuffer.cs
- DirectoryObjectSecurity.cs
- Merger.cs
- FieldBuilder.cs
- Debugger.cs
- GeneralTransformGroup.cs
- _FixedSizeReader.cs
- ItemsControlAutomationPeer.cs
- FileDialogCustomPlacesCollection.cs
- PageCodeDomTreeGenerator.cs
- WindowsIPAddress.cs
- WinInetCache.cs
- TraceHandlerErrorFormatter.cs
- DataGridViewCellLinkedList.cs
- EntityDataSourceEntitySetNameItem.cs
- PropertyPathWorker.cs
- MessageFormatterConverter.cs
- ColumnMapCopier.cs
- ViewService.cs
- SemanticResolver.cs
- FilteredDataSetHelper.cs
- StateMachine.cs
- Peer.cs
- XmlBaseReader.cs
- ConfigurationElementCollection.cs