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
- StreamGeometryContext.cs
- TaskDesigner.cs
- graph.cs
- StringValidator.cs
- nulltextcontainer.cs
- SmtpNtlmAuthenticationModule.cs
- EventLogHandle.cs
- ValueCollectionParameterReader.cs
- DrawingContextDrawingContextWalker.cs
- ResourcesGenerator.cs
- PixelShader.cs
- SystemInformation.cs
- StringBuilder.cs
- ColorDialog.cs
- AvTraceFormat.cs
- FormsAuthenticationUserCollection.cs
- VirtualPathProvider.cs
- FocusManager.cs
- X509PeerCertificateAuthenticationElement.cs
- SqlCommand.cs
- externdll.cs
- PassportAuthentication.cs
- DynamicArgumentDialog.cs
- OneOfElement.cs
- EncoderFallback.cs
- AddingNewEventArgs.cs
- HwndKeyboardInputProvider.cs
- DiscardableAttribute.cs
- CheckBox.cs
- BufferedStream.cs
- ReaderWriterLock.cs
- DataSourceXmlClassAttribute.cs
- InternalUserCancelledException.cs
- TemplatePropertyEntry.cs
- VarInfo.cs
- ChannelPool.cs
- UpdateRecord.cs
- RegexMatchCollection.cs
- CompilerHelpers.cs
- StrokeCollectionDefaultValueFactory.cs
- ProcessModule.cs
- BitmapImage.cs
- XmlCharacterData.cs
- DbMetaDataCollectionNames.cs
- MutableAssemblyCacheEntry.cs
- FileSecurity.cs
- SqlDataSourceRefreshSchemaForm.cs
- SmiRequestExecutor.cs
- WebControlsSection.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- ObjectIDGenerator.cs
- XmlSchemas.cs
- ChangeConflicts.cs
- EntityDataSourceView.cs
- BitmapEffectInput.cs
- TextTreeExtractElementUndoUnit.cs
- IntSecurity.cs
- HotCommands.cs
- DataServiceBehavior.cs
- ValueTypeFixupInfo.cs
- CalendarTable.cs
- ImportCatalogPart.cs
- SymbolType.cs
- TextElementEnumerator.cs
- AlphaSortedEnumConverter.cs
- TaskResultSetter.cs
- DataGridToolTip.cs
- WebServiceParameterData.cs
- CompoundFileStreamReference.cs
- HttpContext.cs
- MeasurementDCInfo.cs
- ImageSource.cs
- Hash.cs
- TextEffect.cs
- SafeRegistryHandle.cs
- CodeMemberMethod.cs
- NavigationHelper.cs
- ToolStripSystemRenderer.cs
- BooleanAnimationBase.cs
- IProvider.cs
- DataObjectPastingEventArgs.cs
- NGCPageContentCollectionSerializerAsync.cs
- _IPv6Address.cs
- CreateUserWizard.cs
- HttpGetProtocolReflector.cs
- NetworkStream.cs
- StrokeNodeEnumerator.cs
- InputScope.cs
- DateTimeSerializationSection.cs
- xmlsaver.cs
- SourceChangedEventArgs.cs
- ReflectionTypeLoadException.cs
- HMACMD5.cs
- WmlSelectionListAdapter.cs
- XmlSchemaAttribute.cs
- ObjectItemAssemblyLoader.cs
- LocalizableResourceBuilder.cs
- EncryptedPackage.cs
- UIElementPropertyUndoUnit.cs
- RegistrySecurity.cs