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
- DataGridViewImageColumn.cs
- RoutedEvent.cs
- _SafeNetHandles.cs
- CodeSnippetTypeMember.cs
- MouseWheelEventArgs.cs
- XamlTypeMapper.cs
- ObjectStateManager.cs
- PageClientProxyGenerator.cs
- WebPartChrome.cs
- COAUTHINFO.cs
- ZipIOBlockManager.cs
- TraceShell.cs
- ItemCollection.cs
- XPathNodePointer.cs
- OleCmdHelper.cs
- ServerProtocol.cs
- WebPartHelpVerb.cs
- WebPartTransformerAttribute.cs
- MappedMetaModel.cs
- SymbolTable.cs
- Parser.cs
- DecoderReplacementFallback.cs
- CodeEntryPointMethod.cs
- RayMeshGeometry3DHitTestResult.cs
- ADConnectionHelper.cs
- RawStylusSystemGestureInputReport.cs
- ProfileInfo.cs
- DataGridCaption.cs
- ObjectDataSourceDisposingEventArgs.cs
- ComponentChangedEvent.cs
- RangeValidator.cs
- InvalidCastException.cs
- AddInProcess.cs
- BaseTemplateParser.cs
- UniqueCodeIdentifierScope.cs
- CommonServiceBehaviorElement.cs
- GradientSpreadMethodValidation.cs
- MatrixValueSerializer.cs
- SecurityException.cs
- WSSecureConversationDec2005.cs
- Keywords.cs
- XmlSchemaRedefine.cs
- OpenTypeLayout.cs
- Span.cs
- ConfigurationStrings.cs
- SessionEndedEventArgs.cs
- SqlDataReaderSmi.cs
- HwndProxyElementProvider.cs
- WindowsTokenRoleProvider.cs
- IdentifierCreationService.cs
- ipaddressinformationcollection.cs
- ConsoleKeyInfo.cs
- PagesChangedEventArgs.cs
- SharedDp.cs
- SmtpMail.cs
- BevelBitmapEffect.cs
- EllipseGeometry.cs
- GroupBoxRenderer.cs
- SmtpNetworkElement.cs
- ValidationResult.cs
- ProcessRequestArgs.cs
- SynchronousChannel.cs
- URLAttribute.cs
- NativeMethods.cs
- PermissionRequestEvidence.cs
- HyperLinkField.cs
- LogicalMethodInfo.cs
- ProfileService.cs
- TaiwanCalendar.cs
- MarkupObject.cs
- SimpleWebHandlerParser.cs
- Peer.cs
- followingquery.cs
- HwndHostAutomationPeer.cs
- ProfileSection.cs
- FixedDocument.cs
- LogConverter.cs
- SRDisplayNameAttribute.cs
- WindowsListViewGroup.cs
- IndexerNameAttribute.cs
- InvalidDataException.cs
- AttachedAnnotation.cs
- VariantWrapper.cs
- ProfilePropertyMetadata.cs
- RadialGradientBrush.cs
- TypeToken.cs
- InputLanguageSource.cs
- URLIdentityPermission.cs
- BitmapEffectrendercontext.cs
- EventLog.cs
- FloaterBaseParaClient.cs
- AddInPipelineAttributes.cs
- StringUtil.cs
- RemotingConfigParser.cs
- Error.cs
- AnimationStorage.cs
- RightsManagementInformation.cs
- RowsCopiedEventArgs.cs
- SqlMetaData.cs
- ScriptControl.cs