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
- WebControl.cs
- SerialReceived.cs
- HttpCapabilitiesEvaluator.cs
- HtmlProps.cs
- DispatcherEventArgs.cs
- SchemaComplexType.cs
- ServiceEndpointAssociationProvider.cs
- BrushValueSerializer.cs
- XmlSchemaSimpleContentExtension.cs
- DecoderNLS.cs
- ProxyHelper.cs
- CodePropertyReferenceExpression.cs
- DispatcherExceptionEventArgs.cs
- StateInitializationDesigner.cs
- DataSourceControlBuilder.cs
- MenuCommandsChangedEventArgs.cs
- DataControlLinkButton.cs
- CorrelationResolver.cs
- XmlSchemaParticle.cs
- InteropEnvironment.cs
- SqlDataSourceRefreshSchemaForm.cs
- GregorianCalendar.cs
- HTTPNotFoundHandler.cs
- MethodInfo.cs
- ValidationErrorEventArgs.cs
- ScriptManager.cs
- DSGeneratorProblem.cs
- CompensatableTransactionScopeActivityDesigner.cs
- HtmlInputSubmit.cs
- ComplexPropertyEntry.cs
- XmlSchemaAnyAttribute.cs
- ClientFormsIdentity.cs
- PingReply.cs
- VoiceChangeEventArgs.cs
- CodeTypeOfExpression.cs
- PrintDialogException.cs
- IpcServerChannel.cs
- StringArrayConverter.cs
- _ConnectionGroup.cs
- RedirectionProxy.cs
- DataServiceClientException.cs
- storepermission.cs
- RepeatBehaviorConverter.cs
- RoutedEvent.cs
- JsonStringDataContract.cs
- ErrorRuntimeConfig.cs
- ManagedIStream.cs
- StdValidatorsAndConverters.cs
- CodeEntryPointMethod.cs
- IApplicationTrustManager.cs
- ScriptManager.cs
- HandlerFactoryCache.cs
- EDesignUtil.cs
- FacetEnabledSchemaElement.cs
- DispatcherSynchronizationContext.cs
- Int16Converter.cs
- ComplexTypeEmitter.cs
- ApplicationTrust.cs
- SocketInformation.cs
- WebHttpSecurityModeHelper.cs
- TextElementEditingBehaviorAttribute.cs
- SevenBitStream.cs
- WebPartEditorApplyVerb.cs
- ZipIOFileItemStream.cs
- XmlCharCheckingWriter.cs
- WaitHandle.cs
- CacheMemory.cs
- WsdlContractConversionContext.cs
- InvokePattern.cs
- FixedHyperLink.cs
- TempEnvironment.cs
- PrtTicket_Base.cs
- StringSorter.cs
- LinqDataSourceSelectEventArgs.cs
- ComboBoxRenderer.cs
- ApplicationFileParser.cs
- XmlAnyElementAttribute.cs
- TemplatedMailWebEventProvider.cs
- HandleDictionary.cs
- AnnotationMap.cs
- ServiceParser.cs
- GroupBox.cs
- EntityDesignerBuildProvider.cs
- CategoryAttribute.cs
- TemplateXamlTreeBuilder.cs
- CodeIndexerExpression.cs
- Size3DValueSerializer.cs
- IndexerNameAttribute.cs
- XmlSchemaAnyAttribute.cs
- AuthenticateEventArgs.cs
- TypeResolvingOptionsAttribute.cs
- ResXResourceSet.cs
- ClusterRegistryConfigurationProvider.cs
- SamlAuthenticationClaimResource.cs
- BehaviorEditorPart.cs
- FlowPosition.cs
- WebBrowserUriTypeConverter.cs
- InkCanvas.cs
- FreeFormDragDropManager.cs
- HuffmanTree.cs