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
- XPSSignatureDefinition.cs
- MessageSecurityException.cs
- CatalogZoneBase.cs
- TemplateBamlRecordReader.cs
- ConfigurationValidatorBase.cs
- ProxyElement.cs
- NumberEdit.cs
- SqlFacetAttribute.cs
- CodeComment.cs
- PropertySegmentSerializationProvider.cs
- ScriptServiceAttribute.cs
- HealthMonitoringSectionHelper.cs
- HuffmanTree.cs
- StreamGeometryContext.cs
- TextTreeExtractElementUndoUnit.cs
- CompModSwitches.cs
- ExpressionLexer.cs
- SessionKeyExpiredException.cs
- MailWriter.cs
- Sorting.cs
- TextTreeTextNode.cs
- Substitution.cs
- HostedAspNetEnvironment.cs
- compensatingcollection.cs
- TreeNodeConverter.cs
- ObjectPropertyMapping.cs
- RuntimeArgumentHandle.cs
- FocusChangedEventArgs.cs
- ObjectListCommandsPage.cs
- MatrixAnimationUsingPath.cs
- HtmlContainerControl.cs
- XmlLanguageConverter.cs
- ButtonRenderer.cs
- DockingAttribute.cs
- VisualStateChangedEventArgs.cs
- MessageFault.cs
- DurableTimerExtension.cs
- PropertyRecord.cs
- DLinqAssociationProvider.cs
- ObjRef.cs
- HandlerWithFactory.cs
- SqlUserDefinedAggregateAttribute.cs
- BooleanToSelectiveScrollingOrientationConverter.cs
- SponsorHelper.cs
- milrender.cs
- TextChangedEventArgs.cs
- AmbientLight.cs
- WebResponse.cs
- TranslateTransform3D.cs
- EventMappingSettings.cs
- QilFactory.cs
- ServicePoint.cs
- _TimerThread.cs
- ErasingStroke.cs
- SessionIDManager.cs
- HttpChannelBindingToken.cs
- WhitespaceRuleReader.cs
- EdmToObjectNamespaceMap.cs
- TableAutomationPeer.cs
- TextFindEngine.cs
- XmlSchemaSimpleContentRestriction.cs
- LazyInitializer.cs
- JpegBitmapEncoder.cs
- LogRestartAreaEnumerator.cs
- StickyNote.cs
- TransformerInfoCollection.cs
- ItemsControl.cs
- SafeSystemMetrics.cs
- SymbolTable.cs
- RoutedEventArgs.cs
- WebScriptServiceHostFactory.cs
- Vector3DValueSerializer.cs
- DbConnectionOptions.cs
- Keyboard.cs
- ComponentConverter.cs
- XmlLanguageConverter.cs
- SoapIgnoreAttribute.cs
- HostUtils.cs
- TaskForm.cs
- SqlWriter.cs
- CapabilitiesUse.cs
- HistoryEventArgs.cs
- StylusPointCollection.cs
- RegexFCD.cs
- SiteMembershipCondition.cs
- SctClaimSerializer.cs
- WindowsFormsSectionHandler.cs
- MTConfigUtil.cs
- HttpDebugHandler.cs
- ComponentSerializationService.cs
- StringTraceRecord.cs
- XamlTypeMapper.cs
- SystemParameters.cs
- RoleService.cs
- PointCollectionValueSerializer.cs
- RegistryPermission.cs
- MimeWriter.cs
- ClientRuntimeConfig.cs
- SubMenuStyle.cs
- ParallelTimeline.cs