Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PointLightBase.cs
- XmlFormatExtensionAttribute.cs
- GPPOINTF.cs
- PeerCollaborationPermission.cs
- EmissiveMaterial.cs
- Switch.cs
- WindowsStatic.cs
- SamlSecurityToken.cs
- AncillaryOps.cs
- isolationinterop.cs
- SqlNotificationRequest.cs
- RenderCapability.cs
- LocatorPartList.cs
- WebPartConnectionsConfigureVerb.cs
- TextSimpleMarkerProperties.cs
- IPHostEntry.cs
- MeshGeometry3D.cs
- URLBuilder.cs
- DataPagerFieldItem.cs
- SqlUnionizer.cs
- Semaphore.cs
- MarkupCompiler.cs
- KnownTypesHelper.cs
- TopClause.cs
- ExternalException.cs
- DrawingServices.cs
- DataGridHeaderBorder.cs
- SizeLimitedCache.cs
- MembershipValidatePasswordEventArgs.cs
- DeviceContext2.cs
- MenuItemCollectionEditor.cs
- UnsettableComboBox.cs
- WindowsIdentity.cs
- AssociationSetEnd.cs
- XhtmlBasicCommandAdapter.cs
- InputLangChangeEvent.cs
- SoapAttributes.cs
- Int32.cs
- TagNameToTypeMapper.cs
- DynamicRenderer.cs
- EdgeProfileValidation.cs
- ConnectionsZone.cs
- MessageBuilder.cs
- SqlConnection.cs
- AppSettingsExpressionEditor.cs
- SortDescription.cs
- WebOperationContext.cs
- WbmpConverter.cs
- PageCatalogPart.cs
- DynamicValueConverter.cs
- basecomparevalidator.cs
- MessageDesigner.cs
- HttpListenerContext.cs
- WindowsContainer.cs
- WebPartEventArgs.cs
- VSWCFServiceContractGenerator.cs
- SqlCacheDependencySection.cs
- FormatterServices.cs
- VisualBrush.cs
- XmlWriter.cs
- DbXmlEnabledProviderManifest.cs
- Vector3DIndependentAnimationStorage.cs
- HttpGetProtocolImporter.cs
- DataDocumentXPathNavigator.cs
- StylusSystemGestureEventArgs.cs
- DSASignatureFormatter.cs
- Scene3D.cs
- SHA1Managed.cs
- AngleUtil.cs
- SafePEFileHandle.cs
- CopyCodeAction.cs
- DetailsView.cs
- DataSourceSelectArguments.cs
- SEHException.cs
- OracleConnectionStringBuilder.cs
- EncryptedData.cs
- autovalidator.cs
- PropertyOverridesDialog.cs
- Ops.cs
- MenuItemCollectionEditor.cs
- AppDomainProtocolHandler.cs
- EntityContainerRelationshipSet.cs
- MSAANativeProvider.cs
- ScrollItemPattern.cs
- SchemaMapping.cs
- BindingOperations.cs
- ArgIterator.cs
- Queue.cs
- DesigntimeLicenseContextSerializer.cs
- GenericArgumentsUpdater.cs
- AsymmetricAlgorithm.cs
- ToolTipAutomationPeer.cs
- SynchronizationLockException.cs
- NameValueCache.cs
- EncryptedKeyHashIdentifierClause.cs
- QueryValue.cs
- TimerElapsedEvenArgs.cs
- DataGridBoolColumn.cs
- LineMetrics.cs
- TypeDelegator.cs