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
- AuthenticationSection.cs
- FontResourceCache.cs
- InfoCardArgumentException.cs
- AnonymousIdentificationModule.cs
- TraceSource.cs
- StrokeCollectionConverter.cs
- PasswordTextNavigator.cs
- ProcessingInstructionAction.cs
- _IPv6Address.cs
- RectAnimationUsingKeyFrames.cs
- MetadataPropertyvalue.cs
- DateTimeOffset.cs
- WizardForm.cs
- TimelineCollection.cs
- Span.cs
- WmiEventSink.cs
- RetrieveVirtualItemEventArgs.cs
- SqlUtils.cs
- LongTypeConverter.cs
- followingquery.cs
- Pen.cs
- LinkLabel.cs
- EntityDataSourceWrapperCollection.cs
- XPathNode.cs
- Vector3DAnimationUsingKeyFrames.cs
- ItemsPresenter.cs
- ToolStripArrowRenderEventArgs.cs
- WebPartRestoreVerb.cs
- PtsHelper.cs
- MouseCaptureWithinProperty.cs
- HwndKeyboardInputProvider.cs
- AuthenticationConfig.cs
- _SecureChannel.cs
- EditorPartChrome.cs
- StylusButtonCollection.cs
- PropertyPushdownHelper.cs
- AssemblyNameProxy.cs
- EntityKey.cs
- XsltSettings.cs
- BinaryReader.cs
- DeclarativeCatalogPart.cs
- BitmapSizeOptions.cs
- PropertyIDSet.cs
- SQLInt16Storage.cs
- ParseHttpDate.cs
- X509ChainElement.cs
- UrlPropertyAttribute.cs
- XdrBuilder.cs
- Interop.cs
- InvokeMethodActivity.cs
- RenderingBiasValidation.cs
- DoubleLinkListEnumerator.cs
- TableRow.cs
- ExtensibleClassFactory.cs
- HtmlGenericControl.cs
- BamlLocalizer.cs
- NonClientArea.cs
- mactripleDES.cs
- ProfileParameter.cs
- NamespaceQuery.cs
- XmlBindingWorker.cs
- ResourceAttributes.cs
- SHA512.cs
- EllipseGeometry.cs
- TreeIterator.cs
- RootBrowserWindowProxy.cs
- CompositeDataBoundControl.cs
- SparseMemoryStream.cs
- Solver.cs
- ThreadAttributes.cs
- TextChange.cs
- EventsTab.cs
- SurrogateSelector.cs
- RequestTimeoutManager.cs
- KeyTimeConverter.cs
- HtmlInputCheckBox.cs
- StreamGeometry.cs
- DataGridViewCellCancelEventArgs.cs
- XmlElementAttributes.cs
- MessageSmuggler.cs
- SqlFileStream.cs
- BindingsCollection.cs
- XhtmlMobileTextWriter.cs
- Event.cs
- CompiledIdentityConstraint.cs
- TypeSemantics.cs
- SamlAuthenticationStatement.cs
- GeometryGroup.cs
- StateRuntime.cs
- FontStretches.cs
- InvokeProviderWrapper.cs
- MultiBinding.cs
- IOThreadTimer.cs
- QueryCacheManager.cs
- ResourceDisplayNameAttribute.cs
- Function.cs
- _UncName.cs
- VisualStyleElement.cs
- AssemblyResourceLoader.cs
- StorageFunctionMapping.cs