Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / System.ServiceModel.Activation / System / ServiceModel / Activation / ServiceHttpHandlerFactory.cs / 1305376 / ServiceHttpHandlerFactory.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Activation { using System.Runtime; using System.Security; using System.ServiceModel; using System.Web; using System.Web.SessionState; class ServiceHttpHandlerFactory : IHttpHandlerFactory { IHttpHandler handler; [Fx.Tag.SecurityNote(Miscellaneous = "RequiresReview - called outside PermitOnly context.")] public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated) { if (this.handler == null) { this.handler = new ServiceHttpHandler(); } return this.handler; } [Fx.Tag.SecurityNote(Miscellaneous = "RequiresReview - called outside PermitOnly context.")] public void ReleaseHandler(IHttpHandler handler) { Fx.Assert(handler is ServiceHttpHandler, "ASP.NET asked to release the wrong handler."); } class ServiceHttpHandler : IHttpAsyncHandler, IRequiresSessionState { public bool IsReusable { [Fx.Tag.SecurityNote(Miscellaneous = "RequiresReview - called outside PermitOnly context.")] get { return true; } } [Fx.Tag.SecurityNote(Critical = "Entry-point from asp.net, called outside PermitOnly context. ASP.NET calls are critical." + "ExecuteSynchronous is critical because it captures HostedImpersonationContext (and makes it available later) " + "so caller must ensure that this is called in the right place.")] [SecurityCritical] public void ProcessRequest(HttpContext context) { ServiceHostingEnvironment.SafeEnsureInitialized(); HostedHttpRequestAsyncResult.ExecuteSynchronous(context.ApplicationInstance, true, false); } [Fx.Tag.SecurityNote(Critical = "Entry-point from asp.net, called outside PermitOnly context. ASP.NET calls are critical." + "ExecuteSynchronous is critical because it captures HostedImpersonationContext (and makes it available later) " + "so caller must ensure that this is called in the right place.")] [SecurityCritical] public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback callback, object extraData) { ServiceHostingEnvironment.SafeEnsureInitialized(); return new HostedHttpRequestAsyncResult(context.ApplicationInstance, true, false, callback, extraData); } [Fx.Tag.SecurityNote(Miscellaneous = "RequiresReview - called outside PermitOnly context.")] public void EndProcessRequest(IAsyncResult result) { HostedHttpRequestAsyncResult.End(result); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Activation { using System.Runtime; using System.Security; using System.ServiceModel; using System.Web; using System.Web.SessionState; class ServiceHttpHandlerFactory : IHttpHandlerFactory { IHttpHandler handler; [Fx.Tag.SecurityNote(Miscellaneous = "RequiresReview - called outside PermitOnly context.")] public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated) { if (this.handler == null) { this.handler = new ServiceHttpHandler(); } return this.handler; } [Fx.Tag.SecurityNote(Miscellaneous = "RequiresReview - called outside PermitOnly context.")] public void ReleaseHandler(IHttpHandler handler) { Fx.Assert(handler is ServiceHttpHandler, "ASP.NET asked to release the wrong handler."); } class ServiceHttpHandler : IHttpAsyncHandler, IRequiresSessionState { public bool IsReusable { [Fx.Tag.SecurityNote(Miscellaneous = "RequiresReview - called outside PermitOnly context.")] get { return true; } } [Fx.Tag.SecurityNote(Critical = "Entry-point from asp.net, called outside PermitOnly context. ASP.NET calls are critical." + "ExecuteSynchronous is critical because it captures HostedImpersonationContext (and makes it available later) " + "so caller must ensure that this is called in the right place.")] [SecurityCritical] public void ProcessRequest(HttpContext context) { ServiceHostingEnvironment.SafeEnsureInitialized(); HostedHttpRequestAsyncResult.ExecuteSynchronous(context.ApplicationInstance, true, false); } [Fx.Tag.SecurityNote(Critical = "Entry-point from asp.net, called outside PermitOnly context. ASP.NET calls are critical." + "ExecuteSynchronous is critical because it captures HostedImpersonationContext (and makes it available later) " + "so caller must ensure that this is called in the right place.")] [SecurityCritical] public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback callback, object extraData) { ServiceHostingEnvironment.SafeEnsureInitialized(); return new HostedHttpRequestAsyncResult(context.ApplicationInstance, true, false, callback, extraData); } [Fx.Tag.SecurityNote(Miscellaneous = "RequiresReview - called outside PermitOnly context.")] public void EndProcessRequest(IAsyncResult result) { HostedHttpRequestAsyncResult.End(result); } } } } // 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
- Span.cs
- FontConverter.cs
- ImpersonateTokenRef.cs
- ComplexType.cs
- BulletedListEventArgs.cs
- Html32TextWriter.cs
- _RequestCacheProtocol.cs
- UIElementParagraph.cs
- QilUnary.cs
- RuntimeIdentifierPropertyAttribute.cs
- SimpleLine.cs
- Clipboard.cs
- formatter.cs
- DesignerVerbCollection.cs
- SystemDropShadowChrome.cs
- BaseComponentEditor.cs
- AxisAngleRotation3D.cs
- ServiceThrottlingBehavior.cs
- DictionaryBase.cs
- NetworkInformationException.cs
- Timer.cs
- ToolStripItemCollection.cs
- ArrayList.cs
- EventDescriptor.cs
- LiteralTextContainerControlBuilder.cs
- PolyLineSegment.cs
- ListBindingHelper.cs
- NameValueFileSectionHandler.cs
- ConnectionPoint.cs
- StateInitializationDesigner.cs
- StrongNameUtility.cs
- RelativeSource.cs
- ResourceSetExpression.cs
- OrderablePartitioner.cs
- SettingsPropertyIsReadOnlyException.cs
- Converter.cs
- ClassicBorderDecorator.cs
- VideoDrawing.cs
- HttpServerVarsCollection.cs
- BinHexEncoder.cs
- DocumentDesigner.cs
- odbcmetadatacollectionnames.cs
- EntityConnectionStringBuilder.cs
- IpcServerChannel.cs
- DBCommandBuilder.cs
- CoTaskMemHandle.cs
- BufferManager.cs
- DataSourceCache.cs
- MeasureItemEvent.cs
- XpsS0ValidatingLoader.cs
- DurableTimerExtension.cs
- SectionRecord.cs
- SingleSelectRootGridEntry.cs
- WebPartConnectionsCloseVerb.cs
- CacheMemory.cs
- TextTreeRootTextBlock.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs
- XamlUtilities.cs
- SevenBitStream.cs
- EdmItemError.cs
- IssuanceLicense.cs
- DetailsViewRowCollection.cs
- ServiceContractAttribute.cs
- CaseStatementSlot.cs
- CharacterString.cs
- ParameterBuilder.cs
- PeerApplication.cs
- BaseUriHelper.cs
- ToolStripDropDownMenu.cs
- SizeAnimation.cs
- Int64.cs
- PageRanges.cs
- ExpressionServices.cs
- BulletedList.cs
- Padding.cs
- Command.cs
- PropertyNames.cs
- RoutedCommand.cs
- LoginView.cs
- AddInEnvironment.cs
- StrokeDescriptor.cs
- FormViewInsertedEventArgs.cs
- FormViewInsertEventArgs.cs
- SmtpCommands.cs
- ServiceElement.cs
- MediaTimeline.cs
- DependencyPropertyConverter.cs
- DoubleAnimationUsingPath.cs
- PrinterSettings.cs
- QueryExpr.cs
- AVElementHelper.cs
- MatrixValueSerializer.cs
- XmlDataDocument.cs
- HelpEvent.cs
- ConstraintConverter.cs
- _HeaderInfo.cs
- Int64.cs
- DeferredTextReference.cs
- RoleGroupCollection.cs
- ComContractElementCollection.cs