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
- DataGridViewRowHeaderCell.cs
- SplitterCancelEvent.cs
- DrawingCollection.cs
- PropertyValueUIItem.cs
- StrokeCollectionDefaultValueFactory.cs
- _SslState.cs
- TreeBuilderBamlTranslator.cs
- TextCompositionManager.cs
- _SingleItemRequestCache.cs
- DisplayInformation.cs
- GridViewAutomationPeer.cs
- HttpCacheVary.cs
- PageSettings.cs
- CallSiteBinder.cs
- DropDownList.cs
- DateTimeConverter2.cs
- ProgressPage.cs
- GridItemProviderWrapper.cs
- ClusterRegistryConfigurationProvider.cs
- BindingListCollectionView.cs
- CallbackHandler.cs
- DefaultTraceListener.cs
- SystemIcons.cs
- NativeObjectSecurity.cs
- RequiredFieldValidator.cs
- ChannelOptions.cs
- EmissiveMaterial.cs
- FirstMatchCodeGroup.cs
- FixedTextView.cs
- securitycriticaldataClass.cs
- RegexMatchCollection.cs
- Application.cs
- BaseParaClient.cs
- _FtpDataStream.cs
- KeyGesture.cs
- SafePointer.cs
- XmlSerializationWriter.cs
- CurrentChangingEventArgs.cs
- Matrix3D.cs
- PowerModeChangedEventArgs.cs
- DelayedRegex.cs
- AdapterDictionary.cs
- ContourSegment.cs
- EventRouteFactory.cs
- NestPullup.cs
- NonSerializedAttribute.cs
- IPAddress.cs
- MediaEntryAttribute.cs
- PathNode.cs
- SQLBinary.cs
- WebPartHelpVerb.cs
- AQNBuilder.cs
- FieldBuilder.cs
- MenuItemStyleCollection.cs
- DbParameterCollectionHelper.cs
- SettingsAttributes.cs
- WizardPanelChangingEventArgs.cs
- AlphabeticalEnumConverter.cs
- SwitchLevelAttribute.cs
- dataobject.cs
- HyperLinkDesigner.cs
- BuildProvider.cs
- XmlNamespaceManager.cs
- DirectionalLight.cs
- TextWriter.cs
- PolyLineSegment.cs
- HiddenFieldPageStatePersister.cs
- QilDataSource.cs
- XmlQueryOutput.cs
- TypeConverterHelper.cs
- SoapIncludeAttribute.cs
- SiteMapDataSource.cs
- CodeSubDirectoriesCollection.cs
- TypeDescriptorFilterService.cs
- EndOfStreamException.cs
- AdRotatorDesigner.cs
- SpeechSeg.cs
- DataGridViewRowCollection.cs
- XPathAncestorQuery.cs
- ProgressPage.cs
- DrawingContextWalker.cs
- _AutoWebProxyScriptWrapper.cs
- CompilerErrorCollection.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- compensatingcollection.cs
- ImageSource.cs
- XsdValidatingReader.cs
- Section.cs
- XmlSchemaAttributeGroupRef.cs
- TreeNodeStyle.cs
- OracleTransaction.cs
- GPStream.cs
- SqlDataReader.cs
- Nullable.cs
- Item.cs
- SpellerStatusTable.cs
- IsolatedStorageFile.cs
- TagMapCollection.cs
- ScriptResourceAttribute.cs
- ConfigurationPermission.cs