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
- ByteStack.cs
- TreeNodeClickEventArgs.cs
- Region.cs
- COM2EnumConverter.cs
- DataGridViewCell.cs
- WmpBitmapEncoder.cs
- XmlSerializerOperationFormatter.cs
- MouseEventArgs.cs
- RTTrackingProfile.cs
- ColumnMapVisitor.cs
- BaseValidator.cs
- KnownTypesProvider.cs
- ThreadStateException.cs
- ExtensionDataObject.cs
- PageAsyncTaskManager.cs
- XslAst.cs
- DecimalAnimation.cs
- RemoteWebConfigurationHostStream.cs
- ConvertBinder.cs
- dataprotectionpermissionattribute.cs
- DiscoveryCallbackBehavior.cs
- BitmapPalette.cs
- LinqDataSourceValidationException.cs
- WebRequest.cs
- TreeNodeCollection.cs
- DBNull.cs
- InvalidComObjectException.cs
- Button.cs
- SecurityPermission.cs
- Journal.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- XmlSchemaExternal.cs
- AbsoluteQuery.cs
- C14NUtil.cs
- InvariantComparer.cs
- AlphabeticalEnumConverter.cs
- LogSwitch.cs
- EdmMember.cs
- CallTemplateAction.cs
- DrawingContextWalker.cs
- XmlTypeMapping.cs
- ScriptDescriptor.cs
- ConnectionInterfaceCollection.cs
- WebPartEventArgs.cs
- CapabilitiesAssignment.cs
- XPathEmptyIterator.cs
- FieldMetadata.cs
- XmlIterators.cs
- Parser.cs
- ApplicationActivator.cs
- MergeFailedEvent.cs
- ZipFileInfoCollection.cs
- NameValuePermission.cs
- CommonProperties.cs
- ProcessInputEventArgs.cs
- SudsCommon.cs
- Processor.cs
- ErrorHandlerModule.cs
- AssociatedControlConverter.cs
- GenericTypeParameterConverter.cs
- SqlDataSourceDesigner.cs
- ClockController.cs
- XmlAnyElementAttribute.cs
- ImportDesigner.xaml.cs
- SqlNotificationRequest.cs
- ScrollViewerAutomationPeer.cs
- SiteMapNode.cs
- WebPartDeleteVerb.cs
- CodeDomConfigurationHandler.cs
- RightsManagementPermission.cs
- AttachedPropertyMethodSelector.cs
- SQLBytes.cs
- ComponentDispatcherThread.cs
- DataGridColumnStyleMappingNameEditor.cs
- XsdBuilder.cs
- ScriptingJsonSerializationSection.cs
- DirectionalLight.cs
- TimerElapsedEvenArgs.cs
- SchemaTypeEmitter.cs
- OuterGlowBitmapEffect.cs
- DataGridViewToolTip.cs
- ConsumerConnectionPoint.cs
- XmlSignificantWhitespace.cs
- TreeBuilderBamlTranslator.cs
- MimeWriter.cs
- ResourceSet.cs
- UnknownBitmapEncoder.cs
- XmlCountingReader.cs
- ContainerUIElement3D.cs
- FontDialog.cs
- CharUnicodeInfo.cs
- KnownIds.cs
- WizardPanel.cs
- CodeGeneratorOptions.cs
- RemotingException.cs
- WebPartManagerInternals.cs
- BulletDecorator.cs
- WindowsBrush.cs
- DocumentApplicationJournalEntry.cs
- WebPartConnectionsConfigureVerb.cs