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
- HtmlElement.cs
- AngleUtil.cs
- WSHttpTransportSecurityElement.cs
- SqlDependencyListener.cs
- CodeMemberProperty.cs
- WeakReferenceEnumerator.cs
- MemoryRecordBuffer.cs
- ParameterExpression.cs
- InputReferenceExpression.cs
- CalendarBlackoutDatesCollection.cs
- EntityDesignerBuildProvider.cs
- HandlerMappingMemo.cs
- DateRangeEvent.cs
- CharacterBuffer.cs
- DetailsViewCommandEventArgs.cs
- LinkConverter.cs
- UnmanagedMemoryStreamWrapper.cs
- ApplicationManager.cs
- AutomationPropertyInfo.cs
- ControlType.cs
- PersonalizableTypeEntry.cs
- SHA512.cs
- NavigationPropertySingletonExpression.cs
- ContourSegment.cs
- MetabaseServerConfig.cs
- AsnEncodedData.cs
- SQLInt16Storage.cs
- CustomPopupPlacement.cs
- WebPartDescriptionCollection.cs
- MenuAutomationPeer.cs
- DataGridCommandEventArgs.cs
- GridPatternIdentifiers.cs
- LoginName.cs
- SelectionRange.cs
- CellParagraph.cs
- NavigationWindow.cs
- QueueTransferProtocol.cs
- ToolBarDesigner.cs
- EdmEntityTypeAttribute.cs
- StringWriter.cs
- ScriptingScriptResourceHandlerSection.cs
- C14NUtil.cs
- MetaType.cs
- Util.cs
- ErrorBehavior.cs
- MsmqIntegrationBindingElement.cs
- ClrProviderManifest.cs
- MatrixAnimationBase.cs
- EntityStoreSchemaGenerator.cs
- CapiSafeHandles.cs
- PersistChildrenAttribute.cs
- ToolTip.cs
- DataConnectionHelper.cs
- RightNameExpirationInfoPair.cs
- AppearanceEditorPart.cs
- FloaterParagraph.cs
- PropertyItem.cs
- DataGridPreparingCellForEditEventArgs.cs
- CompilerState.cs
- Matrix3DValueSerializer.cs
- PageVisual.cs
- CqlWriter.cs
- EdmValidator.cs
- DiscoveryEndpoint.cs
- SHA512.cs
- pingexception.cs
- SmtpMail.cs
- Transactions.cs
- GetIndexBinder.cs
- Frame.cs
- ProjectionRewriter.cs
- TextElementEnumerator.cs
- ReferenceEqualityComparer.cs
- QuotedStringWriteStateInfo.cs
- XmlHelper.cs
- GridPattern.cs
- WorkflowInlining.cs
- CompoundFileIOPermission.cs
- RecognitionEventArgs.cs
- UnsafeNativeMethods.cs
- PrintSystemException.cs
- ViewEventArgs.cs
- XmlValueConverter.cs
- AlternationConverter.cs
- GridViewUpdateEventArgs.cs
- NotificationContext.cs
- ParserOptions.cs
- Activator.cs
- XmlUtf8RawTextWriter.cs
- WorkItem.cs
- ThemeDirectoryCompiler.cs
- Int16AnimationUsingKeyFrames.cs
- AnonymousIdentificationSection.cs
- HtmlImage.cs
- MethodBuilder.cs
- BindToObject.cs
- CommonGetThemePartSize.cs
- RuleElement.cs
- SafeEventLogWriteHandle.cs
- NotifyIcon.cs