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
- NetDataContractSerializer.cs
- WsdlInspector.cs
- DirectoryRedirect.cs
- WindowsSecurityToken.cs
- WebServiceErrorEvent.cs
- XmlExpressionDumper.cs
- SplineQuaternionKeyFrame.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- SingleSelectRootGridEntry.cs
- WebPartExportVerb.cs
- DPCustomTypeDescriptor.cs
- TypeConverterAttribute.cs
- StrongNamePublicKeyBlob.cs
- VectorAnimation.cs
- FormsAuthenticationUser.cs
- XmlDataImplementation.cs
- counter.cs
- CompModSwitches.cs
- KeyFrames.cs
- AutoGeneratedFieldProperties.cs
- TemplateControl.cs
- XmlBufferReader.cs
- DispatcherEventArgs.cs
- DataServiceQuery.cs
- CryptoConfig.cs
- EventLogEntry.cs
- PerformanceCounterPermission.cs
- Schema.cs
- CompilerInfo.cs
- TdsEnums.cs
- AliasedSlot.cs
- SessionStateModule.cs
- XpsSerializationManagerAsync.cs
- OdbcStatementHandle.cs
- InternalConfigEventArgs.cs
- DisposableCollectionWrapper.cs
- MetadataExporter.cs
- AppearanceEditorPart.cs
- LinkLabelLinkClickedEvent.cs
- WebPartTracker.cs
- HttpGetProtocolImporter.cs
- Function.cs
- PublisherMembershipCondition.cs
- ProfilePropertyNameValidator.cs
- KeyConstraint.cs
- COM2Properties.cs
- LicenseProviderAttribute.cs
- HttpResponseInternalBase.cs
- TextParagraphProperties.cs
- SystemGatewayIPAddressInformation.cs
- MappingSource.cs
- sqlser.cs
- GridViewRowEventArgs.cs
- BulletedListEventArgs.cs
- CardSpaceShim.cs
- DataGridAutoFormat.cs
- DataBoundControl.cs
- Transform.cs
- BaseHashHelper.cs
- TypeHelper.cs
- PrintControllerWithStatusDialog.cs
- ContainerParaClient.cs
- RegexTypeEditor.cs
- DataStreamFromComStream.cs
- ManipulationLogic.cs
- TabletDevice.cs
- ParenthesizePropertyNameAttribute.cs
- HtmlCommandAdapter.cs
- TypedElement.cs
- NativeObjectSecurity.cs
- PathTooLongException.cs
- RadialGradientBrush.cs
- MsmqIntegrationProcessProtocolHandler.cs
- WsatRegistrationHeader.cs
- InstanceDescriptor.cs
- Stylesheet.cs
- RevocationPoint.cs
- ValidationService.cs
- ControlDesigner.cs
- BinaryCommonClasses.cs
- StrokeNodeEnumerator.cs
- UICuesEvent.cs
- ResourceReferenceExpression.cs
- TiffBitmapDecoder.cs
- QilInvokeEarlyBound.cs
- FileAccessException.cs
- BoundField.cs
- CharacterString.cs
- SubstitutionList.cs
- FocusManager.cs
- PlanCompiler.cs
- TabItemAutomationPeer.cs
- TextEmbeddedObject.cs
- DomainConstraint.cs
- IncrementalHitTester.cs
- TableItemPattern.cs
- SecureUICommand.cs
- XamlSerializationHelper.cs
- NullableDoubleMinMaxAggregationOperator.cs
- ProfileProvider.cs