Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CommonUI / System / Drawing / IntSecurity.cs / 1305376 / IntSecurity.cs
namespace System.Drawing { using System; using System.IO; using System.Security; using System.Security.Permissions; using System.Drawing.Printing; using System.Runtime.Versioning; 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); [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] internal static void DemandReadFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Read, full).Demand(); } [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] internal static void DemandWriteFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Write, full).Demand(); } [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] 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; using System.Runtime.Versioning; 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); [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] internal static void DemandReadFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Read, full).Demand(); } [ResourceExposure(ResourceScope.None)] [ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)] internal static void DemandWriteFileIO(string fileName) { string full = fileName; full = UnsafeGetFullPath(fileName); new FileIOPermission(FileIOPermissionAccess.Write, full).Demand(); } [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] 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
- SqlFileStream.cs
- XmlDataSource.cs
- WebPartZone.cs
- TreeView.cs
- SiteMapDataSourceView.cs
- ToolTip.cs
- _NativeSSPI.cs
- MediaPlayerState.cs
- CodeSnippetStatement.cs
- lengthconverter.cs
- Model3DGroup.cs
- ReceiveActivityDesignerTheme.cs
- MessageBox.cs
- XamlTypeMapperSchemaContext.cs
- SizeConverter.cs
- relpropertyhelper.cs
- FunctionUpdateCommand.cs
- XmlElementCollection.cs
- BitmapEffectDrawing.cs
- ProvideValueServiceProvider.cs
- CharAnimationUsingKeyFrames.cs
- StatusBarPanelClickEvent.cs
- PageCatalogPart.cs
- NumericUpDownAcceleration.cs
- TemplateBindingExpressionConverter.cs
- UntypedNullExpression.cs
- TypeConverterHelper.cs
- QilBinary.cs
- DbProviderFactoriesConfigurationHandler.cs
- ParentUndoUnit.cs
- CheckableControlBaseAdapter.cs
- SettingsProperty.cs
- SoapAttributeAttribute.cs
- CommandDevice.cs
- XhtmlBasicListAdapter.cs
- AttributedMetaModel.cs
- EventToken.cs
- IERequestCache.cs
- TypeName.cs
- PaintEvent.cs
- DesignerActionUI.cs
- NativeMethods.cs
- SymbolType.cs
- DataSourceXmlTextReader.cs
- ResXFileRef.cs
- HttpServerVarsCollection.cs
- Helper.cs
- ObjectComplexPropertyMapping.cs
- MeshGeometry3D.cs
- SoapAttributeAttribute.cs
- OpenTypeLayout.cs
- WpfXamlType.cs
- MenuScrollingVisibilityConverter.cs
- localization.cs
- InkCanvasSelection.cs
- TextDecorationCollection.cs
- Permission.cs
- RsaEndpointIdentity.cs
- FreezableCollection.cs
- DataComponentNameHandler.cs
- DataIdProcessor.cs
- SymDocumentType.cs
- DeferredReference.cs
- MouseEventArgs.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- TextRunTypographyProperties.cs
- SelectedGridItemChangedEvent.cs
- CodeDirectionExpression.cs
- MethodExpr.cs
- ScopelessEnumAttribute.cs
- Transform3DGroup.cs
- LayoutEvent.cs
- QueryComponents.cs
- XmlSchemaSet.cs
- Compiler.cs
- AppDomainAttributes.cs
- HighlightVisual.cs
- DesignTimeValidationFeature.cs
- SetterBase.cs
- JsonStringDataContract.cs
- TrackingQuery.cs
- TransactionFlowProperty.cs
- MultiBindingExpression.cs
- TextSerializer.cs
- TextTreeNode.cs
- DefaultPrintController.cs
- Choices.cs
- BasicBrowserDialog.designer.cs
- HostingEnvironmentWrapper.cs
- LoginCancelEventArgs.cs
- VariableQuery.cs
- ChangePassword.cs
- MethodBody.cs
- WebFormDesignerActionService.cs
- ClientData.cs
- XPathMultyIterator.cs
- UIElementHelper.cs
- ActivityCodeGenerator.cs
- DoubleLinkListEnumerator.cs
- DataControlFieldsEditor.cs