Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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.
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
- UnknownWrapper.cs
- ReferencedAssembly.cs
- WorkflowMessageEventArgs.cs
- DataTableMappingCollection.cs
- WSDualHttpSecurity.cs
- HwndHostAutomationPeer.cs
- QueryAccessibilityHelpEvent.cs
- XmlAttributeOverrides.cs
- FreezableOperations.cs
- TailCallAnalyzer.cs
- SymbolMethod.cs
- EventData.cs
- TypeDescriptionProvider.cs
- StyleBamlTreeBuilder.cs
- SqlProvider.cs
- PerspectiveCamera.cs
- SelectionUIHandler.cs
- FileLogRecordEnumerator.cs
- RecognitionEventArgs.cs
- XmlCharacterData.cs
- InputBinding.cs
- HtmlHead.cs
- LinearKeyFrames.cs
- ConnectionConsumerAttribute.cs
- MDIControlStrip.cs
- StructuredProperty.cs
- SiteMapProvider.cs
- MatrixKeyFrameCollection.cs
- ViewKeyConstraint.cs
- RenamedEventArgs.cs
- SchemaCollectionPreprocessor.cs
- MultilineStringConverter.cs
- EventLog.cs
- DataGridViewLayoutData.cs
- ListBoxChrome.cs
- SamlAssertionKeyIdentifierClause.cs
- ManageRequest.cs
- IntSecurity.cs
- mediaeventshelper.cs
- BookmarkCallbackWrapper.cs
- PointCollectionConverter.cs
- DbConnectionPoolOptions.cs
- InputBinder.cs
- System.Data_BID.cs
- CustomErrorsSection.cs
- DocumentSequence.cs
- XmlNodeWriter.cs
- DirectoryRootQuery.cs
- Viewport3DAutomationPeer.cs
- latinshape.cs
- Msec.cs
- CollectionChangedEventManager.cs
- SignalGate.cs
- CompressionTransform.cs
- ComPlusSynchronizationContext.cs
- BinaryParser.cs
- ProcessProtocolHandler.cs
- SmuggledIUnknown.cs
- ListManagerBindingsCollection.cs
- StringInfo.cs
- TemplateKey.cs
- ParameterElementCollection.cs
- XmlSchemaNotation.cs
- WindowsMenu.cs
- Pen.cs
- DeploymentExceptionMapper.cs
- ImagingCache.cs
- SchemaElementDecl.cs
- RepeaterItemCollection.cs
- MediaEntryAttribute.cs
- SplineQuaternionKeyFrame.cs
- TypeConverterHelper.cs
- TypeUsageBuilder.cs
- SystemGatewayIPAddressInformation.cs
- shaper.cs
- CalloutQueueItem.cs
- TargetParameterCountException.cs
- MatrixTransform3D.cs
- NetworkInformationPermission.cs
- newinstructionaction.cs
- Literal.cs
- SerializationException.cs
- ExpressionBuilderContext.cs
- QilLiteral.cs
- StyleSheetComponentEditor.cs
- DataGridViewColumnStateChangedEventArgs.cs
- Point3DConverter.cs
- SafeReadContext.cs
- RSAProtectedConfigurationProvider.cs
- XmlMembersMapping.cs
- SchemaAttDef.cs
- TemplatedEditableDesignerRegion.cs
- DataGridViewRowsRemovedEventArgs.cs
- DataSourceGroupCollection.cs
- TableDetailsCollection.cs
- TypeValidationEventArgs.cs
- DecimalAnimation.cs
- TreeNodeMouseHoverEvent.cs
- ScaleTransform3D.cs
- StyleBamlRecordReader.cs