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
- DaylightTime.cs
- ControlPaint.cs
- ProviderManager.cs
- ExtentJoinTreeNode.cs
- LinkAreaEditor.cs
- ChannelDispatcherBase.cs
- SafeFindHandle.cs
- PublishLicense.cs
- Typography.cs
- HttpWebRequestElement.cs
- TransformerTypeCollection.cs
- BitStack.cs
- StreamedFramingRequestChannel.cs
- PointConverter.cs
- MimeFormReflector.cs
- MarkupCompiler.cs
- EventTrigger.cs
- CompareValidator.cs
- GeneralTransform2DTo3DTo2D.cs
- Page.cs
- ExecutionContext.cs
- EditorAttribute.cs
- ListBoxItemWrapperAutomationPeer.cs
- StrokeNodeData.cs
- FormViewRow.cs
- Decimal.cs
- DataGridRowHeader.cs
- ToolStripPanelRow.cs
- XPathMessageFilterElementCollection.cs
- HttpModuleActionCollection.cs
- ToolStripDesigner.cs
- XmlDocumentType.cs
- DataServiceConfiguration.cs
- ItemChangedEventArgs.cs
- MexHttpBindingCollectionElement.cs
- CollectionsUtil.cs
- FontStretchConverter.cs
- ECDiffieHellman.cs
- Decoder.cs
- WebPartConnectionsCloseVerb.cs
- ResXResourceWriter.cs
- MatrixCamera.cs
- MarkupCompiler.cs
- _SpnDictionary.cs
- EditorPartDesigner.cs
- TextShapeableCharacters.cs
- SerializationEventsCache.cs
- ClientSponsor.cs
- SizeAnimationClockResource.cs
- InfiniteTimeSpanConverter.cs
- baseaxisquery.cs
- SchemaInfo.cs
- SaveFileDialog.cs
- PointHitTestResult.cs
- DetailsViewRow.cs
- AuthenticationManager.cs
- XPathNodeInfoAtom.cs
- GridEntryCollection.cs
- Binding.cs
- PackageFilter.cs
- FontClient.cs
- OracleParameter.cs
- FilePrompt.cs
- XPathDocumentNavigator.cs
- InheritablePropertyChangeInfo.cs
- WpfPayload.cs
- COM2PictureConverter.cs
- DataColumnCollection.cs
- Maps.cs
- ServiceHostingEnvironment.cs
- SafeHandles.cs
- DataBindingCollectionEditor.cs
- SchemaManager.cs
- AttachedPropertyMethodSelector.cs
- NominalTypeEliminator.cs
- __Filters.cs
- CombinedHttpChannel.cs
- CodeCompileUnit.cs
- QueueProcessor.cs
- ContextMenuStrip.cs
- BitmapMetadataBlob.cs
- AssemblyNameUtility.cs
- SchemaImporter.cs
- SoapConverter.cs
- MessageQueueConverter.cs
- TraceShell.cs
- ConnectionPoint.cs
- ResourceContainer.cs
- EmptyEnumerator.cs
- CorrelationTokenInvalidatedHandler.cs
- SpecialNameAttribute.cs
- XmlILTrace.cs
- CodeNamespaceCollection.cs
- LocalizableAttribute.cs
- VectorKeyFrameCollection.cs
- SelfIssuedAuthProofToken.cs
- RoutedEventValueSerializer.cs
- UpnEndpointIdentityExtension.cs
- _NegoState.cs
- BamlBinaryReader.cs