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
- DataGridViewCellConverter.cs
- ThreadInterruptedException.cs
- TableSectionStyle.cs
- OperationFormatUse.cs
- SqlRowUpdatingEvent.cs
- ValidationRuleCollection.cs
- GridViewColumn.cs
- PropertyOverridesDialog.cs
- VisualStyleTypesAndProperties.cs
- DefaultSection.cs
- DiscardableAttribute.cs
- AppDomainFactory.cs
- ToolboxItemFilterAttribute.cs
- OutOfProcStateClientManager.cs
- EntityStoreSchemaFilterEntry.cs
- ReadOnlyDictionary.cs
- CodeBinaryOperatorExpression.cs
- HTTPAPI_VERSION.cs
- ExtendedProperty.cs
- Attributes.cs
- HScrollProperties.cs
- IdentifierCollection.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- CellCreator.cs
- ToolStripSplitStackLayout.cs
- cookie.cs
- CheckBoxAutomationPeer.cs
- FontWeights.cs
- Attributes.cs
- WebPartAddingEventArgs.cs
- FixedPageAutomationPeer.cs
- TextBoxAutoCompleteSourceConverter.cs
- RepeatButton.cs
- OdbcEnvironmentHandle.cs
- InputMethod.cs
- HierarchicalDataSourceDesigner.cs
- StringConverter.cs
- keycontainerpermission.cs
- DeclaredTypeValidator.cs
- WebPart.cs
- StandardOleMarshalObject.cs
- LayoutExceptionEventArgs.cs
- counter.cs
- DesignTimeVisibleAttribute.cs
- Span.cs
- ValueTable.cs
- DependencyPropertyHelper.cs
- uribuilder.cs
- baseaxisquery.cs
- SpeakCompletedEventArgs.cs
- HtmlFormWrapper.cs
- CollectionViewProxy.cs
- HitTestFilterBehavior.cs
- AdjustableArrowCap.cs
- Mapping.cs
- GridLengthConverter.cs
- FloaterParaClient.cs
- XamlClipboardData.cs
- ServicePoint.cs
- TemplateBindingExtension.cs
- RegexWriter.cs
- WindowsTreeView.cs
- ChunkedMemoryStream.cs
- TypeBuilder.cs
- WebSysDisplayNameAttribute.cs
- ConfigurationStrings.cs
- FileDialogPermission.cs
- GridView.cs
- WebEventTraceProvider.cs
- WindowsAltTab.cs
- MembershipValidatePasswordEventArgs.cs
- RowToParametersTransformer.cs
- IMembershipProvider.cs
- XDeferredAxisSource.cs
- SessionStateItemCollection.cs
- Asn1IntegerConverter.cs
- ContentTypeSettingDispatchMessageFormatter.cs
- DataGridAddNewRow.cs
- NullableFloatSumAggregationOperator.cs
- log.cs
- ServiceDesigner.xaml.cs
- Stack.cs
- IdentifierElement.cs
- DesignerRegion.cs
- ItemsPanelTemplate.cs
- SamlAuthorizationDecisionClaimResource.cs
- SqlDataSourceEnumerator.cs
- WebBrowserBase.cs
- MimeParameter.cs
- DesignTimeTemplateParser.cs
- CompensatableTransactionScopeActivity.cs
- DataViewSettingCollection.cs
- BoundColumn.cs
- SpotLight.cs
- RelationshipNavigation.cs
- WebPartEditorApplyVerb.cs
- ObjectConverter.cs
- ComboBox.cs
- LoginDesigner.cs
- HeaderCollection.cs