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
- EventSetterHandlerConverter.cs
- ParameterBuilder.cs
- EnvelopedPkcs7.cs
- mediapermission.cs
- ToolStripSystemRenderer.cs
- BamlStream.cs
- XmlCharacterData.cs
- XmlEventCache.cs
- DataGridComponentEditor.cs
- PrtCap_Reader.cs
- RegularExpressionValidator.cs
- Group.cs
- ArraySortHelper.cs
- HttpConfigurationSystem.cs
- DbDeleteCommandTree.cs
- Geometry.cs
- StringAnimationUsingKeyFrames.cs
- WebPart.cs
- ValueSerializerAttribute.cs
- DataGridViewRowsAddedEventArgs.cs
- SoapAttributes.cs
- XmlValidatingReader.cs
- ErrorInfoXmlDocument.cs
- Point3D.cs
- XmlEntity.cs
- TextBox.cs
- ThreadExceptionEvent.cs
- AudioFormatConverter.cs
- SystemNetworkInterface.cs
- MarkupCompilePass2.cs
- MissingSatelliteAssemblyException.cs
- ComboBoxDesigner.cs
- EmptyReadOnlyDictionaryInternal.cs
- ChangeTracker.cs
- GridViewCellAutomationPeer.cs
- OutputCacheSettings.cs
- AmbiguousMatchException.cs
- DataKeyCollection.cs
- ApplyTemplatesAction.cs
- FontSource.cs
- CompModSwitches.cs
- GeneralTransform2DTo3D.cs
- QuarticEase.cs
- CanonicalFontFamilyReference.cs
- DataGridHeaderBorder.cs
- ObjectIDGenerator.cs
- TextRangeEditTables.cs
- DBBindings.cs
- QueryContinueDragEventArgs.cs
- MouseButtonEventArgs.cs
- ValidationHelper.cs
- DataTableReader.cs
- XPathArrayIterator.cs
- ListenerTraceUtility.cs
- DesignerValidationSummaryAdapter.cs
- IdentityReference.cs
- Buffer.cs
- DetailsViewUpdateEventArgs.cs
- Logging.cs
- DecoderBestFitFallback.cs
- OrderedParallelQuery.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- StylusEditingBehavior.cs
- BaseProcessor.cs
- ArgumentOutOfRangeException.cs
- DependencyStoreSurrogate.cs
- XmlObjectSerializerWriteContextComplex.cs
- DataGridPagerStyle.cs
- TextSchema.cs
- CultureMapper.cs
- SortKey.cs
- IssuedTokenServiceElement.cs
- ClientCredentials.cs
- Win32.cs
- ThicknessAnimationUsingKeyFrames.cs
- DetailsViewCommandEventArgs.cs
- MetaTable.cs
- Stacktrace.cs
- XmlRootAttribute.cs
- FixedSOMFixedBlock.cs
- LookupNode.cs
- ViewSimplifier.cs
- MachineKeySection.cs
- WebColorConverter.cs
- ElementsClipboardData.cs
- StringArrayEditor.cs
- CLSCompliantAttribute.cs
- LinkConverter.cs
- ComponentCodeDomSerializer.cs
- IconHelper.cs
- AssemblySettingAttributes.cs
- AnimationStorage.cs
- BulletedList.cs
- PropertyKey.cs
- ObjectViewQueryResultData.cs
- Typography.cs
- _LazyAsyncResult.cs
- XmlIterators.cs
- _Semaphore.cs
- IdleTimeoutMonitor.cs