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
- IdleTimeoutMonitor.cs
- Binding.cs
- IndexedString.cs
- EntityDataSourceState.cs
- WindowsToolbarItemAsMenuItem.cs
- InlineUIContainer.cs
- StylusShape.cs
- WorkflowControlEndpoint.cs
- GeneralTransformGroup.cs
- TextPenaltyModule.cs
- ByteStream.cs
- LongTypeConverter.cs
- QueryMatcher.cs
- ToolStripGripRenderEventArgs.cs
- WebPartTransformerAttribute.cs
- ClientEventManager.cs
- WmlObjectListAdapter.cs
- ConfigXmlDocument.cs
- SchemaNames.cs
- CustomAttributeSerializer.cs
- DiscriminatorMap.cs
- DocumentViewerBaseAutomationPeer.cs
- GridLength.cs
- RTTypeWrapper.cs
- KeySplineConverter.cs
- CodeMethodReturnStatement.cs
- QilReference.cs
- IPHostEntry.cs
- Decorator.cs
- AutomationAttributeInfo.cs
- QilStrConcat.cs
- PrimitiveDataContract.cs
- TextRenderer.cs
- KeyedCollection.cs
- KnownBoxes.cs
- DebugControllerThread.cs
- AutomationIdentifier.cs
- FixedSOMContainer.cs
- Utils.cs
- OpenFileDialog.cs
- DateTimeFormatInfoScanner.cs
- PlanCompilerUtil.cs
- EpmHelper.cs
- XmlSchemaAttribute.cs
- TypeDescriptionProviderAttribute.cs
- SqlDuplicator.cs
- ImageSource.cs
- ToolStripItemEventArgs.cs
- PersonalizationProviderCollection.cs
- EditingCoordinator.cs
- XPathNodeHelper.cs
- UnsafeNativeMethods.cs
- XPathCompileException.cs
- FormClosedEvent.cs
- File.cs
- SoapWriter.cs
- DataGridSortCommandEventArgs.cs
- StrongNameMembershipCondition.cs
- SqlReorderer.cs
- ListViewHitTestInfo.cs
- Scene3D.cs
- ManualWorkflowSchedulerService.cs
- QuotedPrintableStream.cs
- ToolStripScrollButton.cs
- ButtonAutomationPeer.cs
- GcSettings.cs
- HwndSubclass.cs
- FormatStringEditor.cs
- HttpRuntimeSection.cs
- CodeExporter.cs
- HatchBrush.cs
- WindowHideOrCloseTracker.cs
- ByteStream.cs
- CodeTypeMemberCollection.cs
- DesignerDataSourceView.cs
- Transaction.cs
- ObjectItemCollection.cs
- DesignerContextDescriptor.cs
- NameScope.cs
- StrokeNode.cs
- ListDesigner.cs
- CodeDOMProvider.cs
- UIElementIsland.cs
- ToolStripMenuItem.cs
- SqlSupersetValidator.cs
- SystemTcpConnection.cs
- SqlConnection.cs
- GrammarBuilderWildcard.cs
- RowToParametersTransformer.cs
- PriorityRange.cs
- DesignParameter.cs
- ServiceNameCollection.cs
- Shared.cs
- CacheMemory.cs
- LocatorGroup.cs
- SamlAuthenticationClaimResource.cs
- BreadCrumbTextConverter.cs
- OwnerDrawPropertyBag.cs
- ClientSession.cs
- LateBoundChannelParameterCollection.cs