Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / System.ServiceModel.Activation / System / ServiceModel / Activation / HttpModule.cs / 1305376 / HttpModule.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Activation { using System.Diagnostics; using System.Runtime; using System.Security; using System.ServiceModel; using System.Web; using System.Web.Hosting; class HttpModule : IHttpModule { static bool disabled; [Fx.Tag.SecurityNote(Miscellaneous = "RequiresReview - called outside PermitOnly context.")] public void Dispose() { } [Fx.Tag.SecurityNote(Critical = "Entry-point from asp.net, accesses ProcessRequest which is SecurityCritical.")] [SecurityCritical] public void Init(HttpApplication context) { context.PostAuthenticateRequest += new EventHandler(ProcessRequest); } [Fx.Tag.SecurityNote(Critical = "Entry-point from asp.net, called outside PermitOnly context. ASP calls are critical." + "HostedHttpRequestAsyncResult..ctor is critical because it captures HostedImpersonationContext." + "(and makes it available later) so caller must ensure that this is called in the right place.")] [SecurityCritical] static void ProcessRequest(object sender, EventArgs e) { if (HttpModule.disabled) { return; } try { ServiceHostingEnvironment.SafeEnsureInitialized(); } catch (SecurityException exception) { HttpModule.disabled = true; if (DiagnosticUtility.ShouldTraceWarning) { DiagnosticUtility.ExceptionUtility.TraceHandledException(exception, TraceEventType.Warning); } // If requesting a .svc file, the HttpHandler will try to handle it. It will call // SafeEnsureInitialized() again, which will fail with the same exception (it is // idempotent on failure). This is the correct behavior. return; } HttpApplication application = (HttpApplication)sender; // Check to see whether the extension is supported string extension = application.Request.CurrentExecutionFilePathExtension; if (string.IsNullOrEmpty(extension)) { return; } ServiceHostingEnvironment.ServiceType serviceType = ServiceHostingEnvironment.GetServiceType(extension); // do extension check first so that we do not need to do it in aspnetrouting/configurationbasedactivation if (serviceType == ServiceHostingEnvironment.ServiceType.Unknown) { return; } // check for AspNetcompat if (ServiceHostingEnvironment.AspNetCompatibilityEnabled) { // remap httphandler for xamlx in CBA, since there is No physical file and // the xamlx httphandlerfactory will do file exist checking if (serviceType == ServiceHostingEnvironment.ServiceType.Workflow && ServiceHostingEnvironment.IsConfigurationBasedService(application)) { application.Context.RemapHandler(new HttpHandler()); } return; } else if (serviceType == ServiceHostingEnvironment.ServiceType.WCF) { HostedHttpRequestAsyncResult.ExecuteSynchronous(application, false, false); } else if (serviceType == ServiceHostingEnvironment.ServiceType.Workflow) { HostedHttpRequestAsyncResult.ExecuteSynchronous(application, false, true); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Activation { using System.Diagnostics; using System.Runtime; using System.Security; using System.ServiceModel; using System.Web; using System.Web.Hosting; class HttpModule : IHttpModule { static bool disabled; [Fx.Tag.SecurityNote(Miscellaneous = "RequiresReview - called outside PermitOnly context.")] public void Dispose() { } [Fx.Tag.SecurityNote(Critical = "Entry-point from asp.net, accesses ProcessRequest which is SecurityCritical.")] [SecurityCritical] public void Init(HttpApplication context) { context.PostAuthenticateRequest += new EventHandler(ProcessRequest); } [Fx.Tag.SecurityNote(Critical = "Entry-point from asp.net, called outside PermitOnly context. ASP calls are critical." + "HostedHttpRequestAsyncResult..ctor is critical because it captures HostedImpersonationContext." + "(and makes it available later) so caller must ensure that this is called in the right place.")] [SecurityCritical] static void ProcessRequest(object sender, EventArgs e) { if (HttpModule.disabled) { return; } try { ServiceHostingEnvironment.SafeEnsureInitialized(); } catch (SecurityException exception) { HttpModule.disabled = true; if (DiagnosticUtility.ShouldTraceWarning) { DiagnosticUtility.ExceptionUtility.TraceHandledException(exception, TraceEventType.Warning); } // If requesting a .svc file, the HttpHandler will try to handle it. It will call // SafeEnsureInitialized() again, which will fail with the same exception (it is // idempotent on failure). This is the correct behavior. return; } HttpApplication application = (HttpApplication)sender; // Check to see whether the extension is supported string extension = application.Request.CurrentExecutionFilePathExtension; if (string.IsNullOrEmpty(extension)) { return; } ServiceHostingEnvironment.ServiceType serviceType = ServiceHostingEnvironment.GetServiceType(extension); // do extension check first so that we do not need to do it in aspnetrouting/configurationbasedactivation if (serviceType == ServiceHostingEnvironment.ServiceType.Unknown) { return; } // check for AspNetcompat if (ServiceHostingEnvironment.AspNetCompatibilityEnabled) { // remap httphandler for xamlx in CBA, since there is No physical file and // the xamlx httphandlerfactory will do file exist checking if (serviceType == ServiceHostingEnvironment.ServiceType.Workflow && ServiceHostingEnvironment.IsConfigurationBasedService(application)) { application.Context.RemapHandler(new HttpHandler()); } return; } else if (serviceType == ServiceHostingEnvironment.ServiceType.WCF) { HostedHttpRequestAsyncResult.ExecuteSynchronous(application, false, false); } else if (serviceType == ServiceHostingEnvironment.ServiceType.Workflow) { HostedHttpRequestAsyncResult.ExecuteSynchronous(application, false, true); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ReadOnlyHierarchicalDataSource.cs
- HttpHeaderCollection.cs
- Queue.cs
- FileLevelControlBuilderAttribute.cs
- CheckBoxAutomationPeer.cs
- JoinGraph.cs
- GuidelineSet.cs
- Literal.cs
- BufferedOutputStream.cs
- Vector3DAnimationUsingKeyFrames.cs
- CharacterBuffer.cs
- XmlValueConverter.cs
- OleDbFactory.cs
- C14NUtil.cs
- SafeLibraryHandle.cs
- _SSPIWrapper.cs
- WebPartActionVerb.cs
- DropDownList.cs
- SqlUDTStorage.cs
- ComplexTypeEmitter.cs
- MultiAsyncResult.cs
- GenericWebPart.cs
- GridErrorDlg.cs
- COM2FontConverter.cs
- Parameter.cs
- WindowsListViewScroll.cs
- FileInfo.cs
- DetailsViewUpdatedEventArgs.cs
- SQLGuidStorage.cs
- DataServiceRequest.cs
- EntityDataSourceViewSchema.cs
- FieldAccessException.cs
- SecurityTokenProvider.cs
- TrackingServices.cs
- FontInfo.cs
- InstanceNormalEvent.cs
- BatchStream.cs
- Deflater.cs
- ValueQuery.cs
- DecoderFallback.cs
- WSUtilitySpecificationVersion.cs
- Int64Animation.cs
- ListenerElementsCollection.cs
- AspNetHostingPermission.cs
- ProcessStartInfo.cs
- SqlConnectionFactory.cs
- AppDomainCompilerProxy.cs
- RuntimeHelpers.cs
- FreezableCollection.cs
- EventEntry.cs
- HandlerFactoryCache.cs
- CharConverter.cs
- ServerReliableChannelBinder.cs
- Transform.cs
- AllMembershipCondition.cs
- InvariantComparer.cs
- FormsAuthenticationConfiguration.cs
- CdpEqualityComparer.cs
- ZipFileInfo.cs
- EventListenerClientSide.cs
- HybridDictionary.cs
- WindowsSlider.cs
- VisualProxy.cs
- FixedSOMPageConstructor.cs
- PrinterResolution.cs
- LoginUtil.cs
- ExceptionHelpers.cs
- PeerNodeAddress.cs
- TemplateNameScope.cs
- ListBase.cs
- LinkDescriptor.cs
- MatrixCamera.cs
- FontSizeConverter.cs
- PropertySegmentSerializationProvider.cs
- XmlSchemaExternal.cs
- RightsManagementEncryptionTransform.cs
- XmlUnspecifiedAttribute.cs
- PlanCompilerUtil.cs
- EdmConstants.cs
- DocumentPageView.cs
- Missing.cs
- MailAddressCollection.cs
- StandardToolWindows.cs
- UshortList2.cs
- SortQuery.cs
- ITreeGenerator.cs
- LowerCaseStringConverter.cs
- WebBrowserBase.cs
- ListParagraph.cs
- AtomEntry.cs
- HostedAspNetEnvironment.cs
- PseudoWebRequest.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- PrimitiveType.cs
- PointAnimationUsingKeyFrames.cs
- BrowserDefinition.cs
- AdCreatedEventArgs.cs
- DefaultPrintController.cs
- entityreference_tresulttype.cs
- SqlClientWrapperSmiStream.cs