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
- SamlAuthorizationDecisionClaimResource.cs
- PageThemeParser.cs
- WebPartCancelEventArgs.cs
- SqlStatistics.cs
- RelatedPropertyManager.cs
- Point.cs
- GridViewDeletedEventArgs.cs
- EntityObject.cs
- Int32KeyFrameCollection.cs
- SystemIPGlobalProperties.cs
- InputBinder.cs
- File.cs
- dataSvcMapFileLoader.cs
- HTMLTextWriter.cs
- ADMembershipUser.cs
- EntityViewGenerationAttribute.cs
- BinaryObjectWriter.cs
- ToolStripContentPanel.cs
- Transform3DGroup.cs
- RadioButtonStandardAdapter.cs
- LayoutTableCell.cs
- TranslateTransform3D.cs
- AssociationSet.cs
- VectorCollectionConverter.cs
- DataSourceExpression.cs
- InkCanvasInnerCanvas.cs
- DecimalKeyFrameCollection.cs
- DataSourceCacheDurationConverter.cs
- DataBoundControl.cs
- XmlCharCheckingReader.cs
- Events.cs
- Assert.cs
- PenThread.cs
- DesignerWithHeader.cs
- NetworkInformationException.cs
- PersonalizationProvider.cs
- _Events.cs
- InvalidCardException.cs
- OverrideMode.cs
- Pen.cs
- CreateUserErrorEventArgs.cs
- WindowsSpinner.cs
- CqlLexerHelpers.cs
- EntityModelSchemaGenerator.cs
- InternalDuplexChannelFactory.cs
- CacheModeConverter.cs
- initElementDictionary.cs
- NetworkCredential.cs
- WaitHandleCannotBeOpenedException.cs
- DashStyle.cs
- StreamWriter.cs
- AsyncResult.cs
- EntityTypeEmitter.cs
- ParserStreamGeometryContext.cs
- SettingsBindableAttribute.cs
- TableRowCollection.cs
- TransformProviderWrapper.cs
- FormsAuthenticationTicket.cs
- OleDbParameter.cs
- SaveFileDialog.cs
- TraceContextEventArgs.cs
- CaseStatementSlot.cs
- StateMachineWorkflowDesigner.cs
- SelectionRangeConverter.cs
- OrderedDictionary.cs
- DependencyPropertyChangedEventArgs.cs
- Overlapped.cs
- DocumentationServerProtocol.cs
- MouseWheelEventArgs.cs
- TextServicesDisplayAttributePropertyRanges.cs
- sqlinternaltransaction.cs
- KeyedCollection.cs
- SettingsSection.cs
- DataGridColumn.cs
- TableLayoutSettingsTypeConverter.cs
- IFlowDocumentViewer.cs
- DataGridViewSortCompareEventArgs.cs
- BufferedReceiveManager.cs
- PackageRelationshipCollection.cs
- ApplicationContext.cs
- RoleManagerEventArgs.cs
- TraceHwndHost.cs
- LiteralControl.cs
- WorkflowApplicationAbortedEventArgs.cs
- RepeatButtonAutomationPeer.cs
- TextTreeText.cs
- FilterQuery.cs
- SamlAudienceRestrictionCondition.cs
- TrustLevelCollection.cs
- ClientSettingsProvider.cs
- AssemblyBuilder.cs
- CompleteWizardStep.cs
- ResizeGrip.cs
- NativeRightsManagementAPIsStructures.cs
- SortFieldComparer.cs
- FormsAuthenticationEventArgs.cs
- GridViewRowCollection.cs
- basenumberconverter.cs
- OleAutBinder.cs
- BamlTreeUpdater.cs