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
- SBCSCodePageEncoding.cs
- TaiwanCalendar.cs
- XPathItem.cs
- FixedPosition.cs
- SQLDateTimeStorage.cs
- DataGridItem.cs
- XmlWriterTraceListener.cs
- WindowsToolbar.cs
- WmlObjectListAdapter.cs
- RsaSecurityTokenAuthenticator.cs
- IdleTimeoutMonitor.cs
- RenderContext.cs
- SynchronizingStream.cs
- TraceHandlerErrorFormatter.cs
- Comparer.cs
- ScriptingProfileServiceSection.cs
- CallTemplateAction.cs
- SponsorHelper.cs
- ImageSource.cs
- HierarchicalDataTemplate.cs
- UrlPath.cs
- SafeLibraryHandle.cs
- RecognizerInfo.cs
- TemplatedMailWebEventProvider.cs
- CreateUserWizardDesigner.cs
- ContentPosition.cs
- BamlLocalizableResourceKey.cs
- HScrollProperties.cs
- SamlSerializer.cs
- WebColorConverter.cs
- BufferModesCollection.cs
- SecurityManager.cs
- XmlChildNodes.cs
- SourceFilter.cs
- XmlSchemaInferenceException.cs
- CircleHotSpot.cs
- DefaultHttpHandler.cs
- Rotation3DAnimationBase.cs
- FileChangesMonitor.cs
- DataColumnPropertyDescriptor.cs
- WindowsListView.cs
- SystemEvents.cs
- NavigationFailedEventArgs.cs
- ResourcePropertyMemberCodeDomSerializer.cs
- TdsRecordBufferSetter.cs
- VariantWrapper.cs
- RSAProtectedConfigurationProvider.cs
- StaticTextPointer.cs
- FixedPage.cs
- CustomError.cs
- ClientData.cs
- SQLDecimalStorage.cs
- SecurityPolicySection.cs
- PrivilegedConfigurationManager.cs
- UrlMappingsSection.cs
- HtmlFormParameterReader.cs
- Keywords.cs
- GridViewRowCollection.cs
- SourceFilter.cs
- XPathChildIterator.cs
- TdsRecordBufferSetter.cs
- RowToParametersTransformer.cs
- KernelTypeValidation.cs
- SelectionEditor.cs
- SelectionWordBreaker.cs
- DependencyPropertyConverter.cs
- XmlSchemaNotation.cs
- BaseProcessor.cs
- FontWeight.cs
- MenuItem.cs
- RawStylusActions.cs
- X500Name.cs
- SafeReversePInvokeHandle.cs
- FixUp.cs
- InputReportEventArgs.cs
- Label.cs
- XmlDataSource.cs
- MethodImplAttribute.cs
- SettingsPropertyNotFoundException.cs
- safex509handles.cs
- InternalBase.cs
- XmlSchemaImporter.cs
- VarRemapper.cs
- QueryableDataSourceEditData.cs
- UnmanagedMarshal.cs
- ToolBarPanel.cs
- StateItem.cs
- BaseResourcesBuildProvider.cs
- QueryCacheKey.cs
- DependencyPropertyConverter.cs
- DiagnosticTrace.cs
- TextReturnReader.cs
- RulePatternOps.cs
- FileLogRecord.cs
- LocalizableResourceBuilder.cs
- XamlInt32CollectionSerializer.cs
- invalidudtexception.cs
- DeviceContext2.cs
- SqlNodeAnnotations.cs
- PackUriHelper.cs