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
- ProviderSettingsCollection.cs
- ProviderCommandInfoUtils.cs
- EventLogPermissionEntryCollection.cs
- ImageListUtils.cs
- HTTPNotFoundHandler.cs
- PeerApplicationLaunchInfo.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- OpenTypeCommon.cs
- ArcSegment.cs
- BasicKeyConstraint.cs
- DataTableNewRowEvent.cs
- HandleRef.cs
- MergablePropertyAttribute.cs
- WorkItem.cs
- PointUtil.cs
- StaticFileHandler.cs
- TableRow.cs
- ComponentResourceKey.cs
- MouseDevice.cs
- PrivilegedConfigurationManager.cs
- Int32RectConverter.cs
- VoiceChangeEventArgs.cs
- SnapshotChangeTrackingStrategy.cs
- SqlDataSourceQueryEditorForm.cs
- ValidationSummary.cs
- JapaneseLunisolarCalendar.cs
- TextTreeText.cs
- DateTimeOffset.cs
- ScrollEvent.cs
- ThemeInfoAttribute.cs
- XsltConvert.cs
- DataServiceRequestOfT.cs
- ObjectDataSourceFilteringEventArgs.cs
- FileLogRecord.cs
- AddInController.cs
- PropertyPathWorker.cs
- XamlVector3DCollectionSerializer.cs
- Span.cs
- TextSerializer.cs
- SubpageParagraph.cs
- ResXResourceWriter.cs
- SortKey.cs
- Journal.cs
- HttpRequestCacheValidator.cs
- ReferenceEqualityComparer.cs
- SqlComparer.cs
- ServiceOperation.cs
- EnumerableRowCollectionExtensions.cs
- SecurityManager.cs
- ProcessInputEventArgs.cs
- SqlClientWrapperSmiStream.cs
- ResolveNameEventArgs.cs
- GroupByExpressionRewriter.cs
- DataViewSettingCollection.cs
- DelegateTypeInfo.cs
- TraceListener.cs
- Viewport3DVisual.cs
- ContextStaticAttribute.cs
- Pair.cs
- GroupItemAutomationPeer.cs
- MenuEventArgs.cs
- HiddenFieldPageStatePersister.cs
- PersonalizationEntry.cs
- SecurityElement.cs
- InteropAutomationProvider.cs
- BookmarkEventArgs.cs
- ToolStripRenderer.cs
- BmpBitmapEncoder.cs
- SchemaSetCompiler.cs
- HuffCodec.cs
- WebServiceEnumData.cs
- TextBoxView.cs
- Menu.cs
- ProtocolViolationException.cs
- UnsafeNativeMethods.cs
- TimeManager.cs
- CustomWebEventKey.cs
- StoreItemCollection.Loader.cs
- WebPartEditVerb.cs
- QilExpression.cs
- HttpValueCollection.cs
- DocumentGridPage.cs
- OdbcCommandBuilder.cs
- invalidudtexception.cs
- EntityUtil.cs
- SafeNativeMethods.cs
- ToolStripMenuItem.cs
- ToolStripOverflow.cs
- MonthChangedEventArgs.cs
- ValidationUtility.cs
- TableRowGroup.cs
- TemplateControl.cs
- ComboBox.cs
- BufferedGenericXmlSecurityToken.cs
- LifetimeServices.cs
- ActivationArguments.cs
- InkSerializer.cs
- CallbackValidatorAttribute.cs
- IdentityReference.cs
- DrawingServices.cs