Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Activation / HostingEnvironmentWrapper.cs / 1 / HostingEnvironmentWrapper.cs
//---------------------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------------------- namespace System.ServiceModel { using System; using System.Security; using System.Security.Permissions; using System.Web.Hosting; using System.Web; using System.Runtime.CompilerServices; // wrapper class that helps with partial trust analysis // -- HostingEnvironment does a number of Demands and LinkDemands // -- this wrapper encapsulates access into "Safe" and "Unsafe" methods that do the appropriate asserts // -- it is recommended that ALL HostingEnvironment access go through this class // -- "Safe" methods are [SecurityCritical, SecurityTreatAsSafe] or not [SecurityCritical] // -- "Unsafe" methods are [SecurityCritical] // -- because each method does precisely one access, we use declarative asserts for clarity static class HostingEnvironmentWrapper { public static string /*Safe*/ApplicationVirtualPath { get { return HostingEnvironment.ApplicationVirtualPath; } } public static bool /*Safe*/IsHosted { get { return HostingEnvironment.IsHosted; } } ////// Critical - calls getters with LinkDemands in ASP .NET objects /// Safe - does not leak control or mutable/harmful data, no potential for harm /// [SecurityCritical, SecurityTreatAsSafe] public static VirtualPathProvider /*Safe*/VirtualPathProvider { get { return HostingEnvironment.VirtualPathProvider; } } ////// Critical - calls getters with LinkDemands in ASP .NET objects /// Safe - does not leak control or mutable/harmful data, no potential for harm /// [SecurityCritical, SecurityTreatAsSafe] [MethodImpl(MethodImplOptions.NoInlining)] public static void /*Safe*/DecrementBusyCount() { HostingEnvironment.DecrementBusyCount(); } // demands SecurityPermission(ControlPrincipal) -- use Unsafe version to assert public static IDisposable /*Safe*/Impersonate() { return HostingEnvironment.Impersonate(); } // demands SecurityPermission(Unrestricted) -- use Unsafe version to assert public static IDisposable /*Safe*/Impersonate(IntPtr token) { return HostingEnvironment.Impersonate(token); } ////// Critical - calls getters with LinkDemands in ASP .NET objects /// Safe - does not leak control or mutable/harmful data, no potential for harm /// [SecurityCritical, SecurityTreatAsSafe] [MethodImpl(MethodImplOptions.NoInlining)] public static void /*Safe*/IncrementBusyCount() { HostingEnvironment.IncrementBusyCount(); } public static string /*Safe*/MapPath(string virtualPath) { return HostingEnvironment.MapPath(virtualPath); } public static string UnsafeApplicationID { ////// Critical - Asserts SecurityPermission in order to call HostingEnvironment.get_ApplicationID /// [SecurityCritical] [AspNetHostingPermission(System.Security.Permissions.SecurityAction.Assert, Level = AspNetHostingPermissionLevel.High)] get { return HostingEnvironment.ApplicationID; } } ////// Critical - Asserts SecurityPermission in order to call HostingEnvironment.UnsafeImpersonate /// [SecurityCritical] [SecurityPermission(SecurityAction.Assert, ControlPrincipal = true)] public static IDisposable UnsafeImpersonate() { return HostingEnvironment.Impersonate(); } ////// Critical - Asserts SecurityPermission in order to call HostingEnvironment.UnsafeImpersonate /// [SecurityCritical] [SecurityPermission(SecurityAction.Assert, Unrestricted = true)] public static IDisposable UnsafeImpersonate(IntPtr token) { return HostingEnvironment.Impersonate(token); } ////// Critical - Asserts SecurityPermission in order to call HostingEnvironment.RegisterObject /// [SecurityCritical] [SecurityPermission(SecurityAction.Assert, Unrestricted = true)] public static void UnsafeRegisterObject(IRegisteredObject target) { HostingEnvironment.RegisterObject(target); } ////// Critical - Asserts SecurityPermission in order to call HostingEnvironment.UnregisterObject /// [SecurityCritical] [SecurityPermission(SecurityAction.Assert, Unrestricted = true)] public static void UnsafeUnregisterObject(IRegisteredObject target) { HostingEnvironment.UnregisterObject(target); } } } // 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
- InternalRelationshipCollection.cs
- FixedDocument.cs
- SignedXml.cs
- X509UI.cs
- SimpleTypesSurrogate.cs
- MetaData.cs
- Point3DAnimation.cs
- RoleBoolean.cs
- WebBrowserBase.cs
- ConfigurationManagerHelper.cs
- PopOutPanel.cs
- AnimationLayer.cs
- KeyTimeConverter.cs
- DoubleLinkList.cs
- ItemDragEvent.cs
- BatchServiceHost.cs
- CatalogPartChrome.cs
- IndexExpression.cs
- RichTextBox.cs
- ThousandthOfEmRealPoints.cs
- InvalidCardException.cs
- StrokeCollection.cs
- NumericUpDownAcceleration.cs
- SimpleTextLine.cs
- VersionValidator.cs
- XamlInterfaces.cs
- BrowserDefinition.cs
- ThousandthOfEmRealPoints.cs
- RecognizerBase.cs
- TableLayoutPanelCellPosition.cs
- XmlBinaryReader.cs
- SmiEventSink.cs
- TextRunProperties.cs
- DataObjectMethodAttribute.cs
- DrawListViewSubItemEventArgs.cs
- StackSpiller.Generated.cs
- DependencyPropertyHelper.cs
- ProviderException.cs
- Vector3DValueSerializer.cs
- httpstaticobjectscollection.cs
- StylusSystemGestureEventArgs.cs
- BamlBinaryWriter.cs
- DockPattern.cs
- XmlSerializableServices.cs
- SQLSingle.cs
- PriorityQueue.cs
- EntityDataSourceWizardForm.cs
- FormsAuthenticationEventArgs.cs
- ILGen.cs
- WebServiceParameterData.cs
- TrackingLocation.cs
- ItemList.cs
- DeclaredTypeElement.cs
- CardSpaceException.cs
- PopupEventArgs.cs
- AncestorChangedEventArgs.cs
- StickyNoteContentControl.cs
- ContentPresenter.cs
- ListViewAutomationPeer.cs
- PostBackOptions.cs
- DataTransferEventArgs.cs
- ListViewSelectEventArgs.cs
- PaperSize.cs
- StringSorter.cs
- HwndAppCommandInputProvider.cs
- SchemaComplexType.cs
- WorkflowRuntimeService.cs
- NamespaceTable.cs
- SymmetricSecurityProtocolFactory.cs
- sqlmetadatafactory.cs
- CounterCreationDataCollection.cs
- PatternMatcher.cs
- _Win32.cs
- BitVector32.cs
- WebBrowsableAttribute.cs
- NullableLongSumAggregationOperator.cs
- DesignBindingPropertyDescriptor.cs
- SmiContextFactory.cs
- HMAC.cs
- IISUnsafeMethods.cs
- ToolStripSplitStackLayout.cs
- Image.cs
- StateRuntime.cs
- PagedControl.cs
- RunClient.cs
- ReceiveActivity.cs
- ParagraphResult.cs
- CorrelationManager.cs
- MultiPropertyDescriptorGridEntry.cs
- RegexCapture.cs
- EventPropertyMap.cs
- ListDictionaryInternal.cs
- DataViewListener.cs
- DocumentGridPage.cs
- SHA256.cs
- ConfigurationSection.cs
- PriorityBinding.cs
- DropDownButton.cs
- WebConvert.cs
- RuntimeConfigLKG.cs