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
- DesignerAttributeInfo.cs
- LZCodec.cs
- DataGridViewColumnEventArgs.cs
- ModelPerspective.cs
- XmlReaderSettings.cs
- InternalMappingException.cs
- GAC.cs
- MulticastNotSupportedException.cs
- DesignerDataSourceView.cs
- LinqDataSourceView.cs
- XhtmlBasicControlAdapter.cs
- CreateUserWizardStep.cs
- CanonicalFontFamilyReference.cs
- WeakReferenceList.cs
- PropertyDescriptor.cs
- BrowserCapabilitiesCompiler.cs
- AsymmetricKeyExchangeFormatter.cs
- XmlSerializerOperationBehavior.cs
- FormatConvertedBitmap.cs
- OutKeywords.cs
- PropertyPathConverter.cs
- URLBuilder.cs
- IdnMapping.cs
- ModifyActivitiesPropertyDescriptor.cs
- UICuesEvent.cs
- AppDomainAttributes.cs
- ISCIIEncoding.cs
- IgnoreFlushAndCloseStream.cs
- Converter.cs
- EntityDesignerUtils.cs
- PropertyEmitter.cs
- ItemsControl.cs
- TextViewElement.cs
- handlecollector.cs
- Configuration.cs
- StylusDownEventArgs.cs
- HttpConfigurationSystem.cs
- RSAPKCS1SignatureFormatter.cs
- SrgsRulesCollection.cs
- DeclaredTypeValidator.cs
- IdentityNotMappedException.cs
- XmlReaderDelegator.cs
- SqlProviderServices.cs
- QilLoop.cs
- SqlException.cs
- DataFormats.cs
- AddressAccessDeniedException.cs
- DependencyObjectPropertyDescriptor.cs
- SamlAuthorizationDecisionClaimResource.cs
- IntPtr.cs
- EventHandlerList.cs
- XmlSchema.cs
- WebPartDescription.cs
- DoubleKeyFrameCollection.cs
- SafeFindHandle.cs
- StyleCollection.cs
- SqlConnectionString.cs
- HyperlinkAutomationPeer.cs
- HttpHandlerAction.cs
- InputProcessorProfilesLoader.cs
- LogicalExpr.cs
- SqlDataSourceQueryEditor.cs
- documentsequencetextview.cs
- Int16KeyFrameCollection.cs
- CodeValidator.cs
- FunctionDetailsReader.cs
- ObjectStateEntryDbDataRecord.cs
- DataRelation.cs
- SqlConnectionHelper.cs
- DataGridViewRowConverter.cs
- ToolZone.cs
- SynchronizationLockException.cs
- OleDbWrapper.cs
- UnsafeNativeMethodsPenimc.cs
- InstanceOwner.cs
- AutoGeneratedFieldProperties.cs
- PointAnimation.cs
- Keyboard.cs
- ScalarType.cs
- OptionalRstParameters.cs
- DependencyPropertyHelper.cs
- ToolStripContentPanel.cs
- XmlSerializationReader.cs
- TransformerConfigurationWizardBase.cs
- SmtpFailedRecipientException.cs
- IconBitmapDecoder.cs
- FlowDocumentFormatter.cs
- DataServiceQuery.cs
- SharedStatics.cs
- AmbientValueAttribute.cs
- RemotingConfiguration.cs
- TextRange.cs
- MiniModule.cs
- SqlClientMetaDataCollectionNames.cs
- safesecurityhelperavalon.cs
- LZCodec.cs
- SplineKeyFrames.cs
- CompiledXpathExpr.cs
- AppSecurityManager.cs
- XamlParser.cs