Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Activation / ServiceHttpModule.cs / 1 / ServiceHttpModule.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Activation { using System.IO; using System.Text; using System.ServiceModel; using System.Web; using System.Web.Hosting; using System.Security; using System.Security.Permissions; using System.Diagnostics; class ServiceHttpModule : IHttpModule { ////// Critical - Holds pointer to BeginProcessRequest which is SecurityCritical. /// This callback is called outside the PermitOnly context. /// [SecurityCritical] static BeginEventHandler beginEventHandler; ////// Critical - This callback is called outside the PermitOnly context. /// [SecurityCritical] static EndEventHandler endEventHandler; static bool disabled; ////// RequiresReview - Called outside PermitOnly context, /// [SecurityRequiresReview] public void Dispose() { } ////// Critical - Entry-point from ASP.NET, accesses begin/bndProcessRequest which are SecurityCritical. /// [SecurityCritical] public void Init(HttpApplication context) { if (ServiceHttpModule.beginEventHandler == null) { ServiceHttpModule.beginEventHandler = new BeginEventHandler(BeginProcessRequest); } if (ServiceHttpModule.endEventHandler == null) { ServiceHttpModule.endEventHandler = new EndEventHandler(EndProcessRequest); } context.AddOnPostAuthenticateRequestAsync( ServiceHttpModule.beginEventHandler, ServiceHttpModule.endEventHandler); } ////// Critical - Entry-point from ASP.NET, called outside PermitOnly context. /// ASP.NET 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 public IAsyncResult BeginProcessRequest(object sender, EventArgs e, AsyncCallback cb, object extraData) { if (ServiceHttpModule.disabled) { return new CompletedAsyncResult(cb, extraData);; } try { ServiceHostingEnvironment.SafeEnsureInitialized(); } catch (SecurityException exception) { ServiceHttpModule.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 new CompletedAsyncResult(cb, extraData); } if (ServiceHostingEnvironment.AspNetCompatibilityEnabled) { return new CompletedAsyncResult(cb, extraData); } // Check to see whether the extension is supported. HttpApplication application = (HttpApplication) sender; string extension = System.IO.Path.GetExtension(application.Request.FilePath); if (extension == null || !ServiceHostingEnvironment.GetExtensionSupported(extension)) { return new CompletedAsyncResult(cb, extraData); } return new HostedHttpRequestAsyncResult(application, false, cb, extraData); } ////// RequiresReview - Called outside PermitOnly context, /// [SecurityRequiresReview] static public void EndProcessRequest(IAsyncResult ar) { if (ar is CompletedAsyncResult) { CompletedAsyncResult.End(ar); } else { HostedHttpRequestAsyncResult.End(ar); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlTransaction.cs
- VirtualizingStackPanel.cs
- Transform.cs
- ForeignKeyConstraint.cs
- RegularExpressionValidator.cs
- RemotingConfiguration.cs
- ZoneMembershipCondition.cs
- DBNull.cs
- ListViewCancelEventArgs.cs
- DecoderFallback.cs
- sortedlist.cs
- ValueConversionAttribute.cs
- ListControl.cs
- BitmapScalingModeValidation.cs
- TablePattern.cs
- returneventsaver.cs
- MediaPlayer.cs
- CodeNamespaceCollection.cs
- TextRangeEditTables.cs
- DataServiceRequestException.cs
- Int32RectValueSerializer.cs
- NodeCounter.cs
- XmlSerializationReader.cs
- ResolveResponse.cs
- UnauthorizedWebPart.cs
- NavigatorInput.cs
- ToolStripHighContrastRenderer.cs
- WindowsAltTab.cs
- DatagridviewDisplayedBandsData.cs
- EventsTab.cs
- PackageDigitalSignature.cs
- XmlSchema.cs
- DeviceFilterEditorDialog.cs
- MetaModel.cs
- HybridObjectCache.cs
- SqlClientFactory.cs
- PropertyInfoSet.cs
- CodeSubDirectoriesCollection.cs
- SineEase.cs
- NameValueFileSectionHandler.cs
- ToolboxItemFilterAttribute.cs
- AbandonedMutexException.cs
- FixedTextSelectionProcessor.cs
- XmlSchemaCollection.cs
- CalendarAutoFormat.cs
- VariantWrapper.cs
- SqlTriggerContext.cs
- DataGridViewCellParsingEventArgs.cs
- UserControl.cs
- WsrmMessageInfo.cs
- ConfigXmlComment.cs
- PolyLineSegment.cs
- Label.cs
- MessageVersion.cs
- HtmlInputRadioButton.cs
- XmlEncoding.cs
- ControlBuilderAttribute.cs
- HttpRequestWrapper.cs
- PointAnimationClockResource.cs
- RegisteredDisposeScript.cs
- OleDbStruct.cs
- FacetDescriptionElement.cs
- MultipleViewPatternIdentifiers.cs
- RandomDelayQueuedSendsAsyncResult.cs
- EntityContainer.cs
- ExpressionEditorAttribute.cs
- ScriptRegistrationManager.cs
- Selection.cs
- MenuScrollingVisibilityConverter.cs
- XmlSchemaValidationException.cs
- SchemaNotation.cs
- NativeMethods.cs
- IOThreadScheduler.cs
- FlatButtonAppearance.cs
- PeerTransportCredentialType.cs
- ReadOnlyMetadataCollection.cs
- Line.cs
- ShadowGlyph.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- Membership.cs
- CleanUpVirtualizedItemEventArgs.cs
- BookmarkList.cs
- ProfileSection.cs
- CommandCollectionEditor.cs
- CustomCredentialPolicy.cs
- GridItemPatternIdentifiers.cs
- OleDbErrorCollection.cs
- EdmConstants.cs
- XsltQilFactory.cs
- BoundingRectTracker.cs
- MeasurementDCInfo.cs
- DbDataAdapter.cs
- WebHttpBinding.cs
- DataList.cs
- PriorityChain.cs
- WebPartConnectionCollection.cs
- XmlArrayItemAttribute.cs
- SafeEventLogReadHandle.cs
- XmlSchemaSearchPattern.cs
- MenuStrip.cs