Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DrawingContextDrawingContextWalker.cs
- SwitchElementsCollection.cs
- StyleHelper.cs
- PageContentCollection.cs
- DataFormat.cs
- CodeTypeOfExpression.cs
- QueryConverter.cs
- BinaryReader.cs
- BaseConfigurationRecord.cs
- XmlFormatExtensionPrefixAttribute.cs
- SplitContainer.cs
- Regex.cs
- ToolCreatedEventArgs.cs
- SapiRecoInterop.cs
- TableColumn.cs
- RulePatternOps.cs
- AvtEvent.cs
- LogicalExpr.cs
- IDReferencePropertyAttribute.cs
- FrugalMap.cs
- DataListCommandEventArgs.cs
- PropertyIDSet.cs
- AccessDataSourceView.cs
- ValueType.cs
- XmlSchemaChoice.cs
- UInt32.cs
- SerializationAttributes.cs
- FixedSOMTableCell.cs
- SmtpNtlmAuthenticationModule.cs
- Listener.cs
- Int32.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- IntSecurity.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- TrackingStringDictionary.cs
- SystemPens.cs
- BamlBinaryWriter.cs
- FrameworkElementAutomationPeer.cs
- GenericWebPart.cs
- HtmlGenericControl.cs
- _BaseOverlappedAsyncResult.cs
- ParameterReplacerVisitor.cs
- BaseValidator.cs
- FieldAccessException.cs
- SettingsAttributes.cs
- TypeBuilder.cs
- unitconverter.cs
- DeviceSpecificDialogCachedState.cs
- SqlDataSourceParameterParser.cs
- ListViewSortEventArgs.cs
- FormatConvertedBitmap.cs
- ServiceControllerDesigner.cs
- ManualResetEvent.cs
- BaseTypeViewSchema.cs
- ModifierKeysConverter.cs
- SortedDictionary.cs
- TrackBarDesigner.cs
- HtmlProps.cs
- EmbeddedMailObjectsCollection.cs
- TableDetailsCollection.cs
- ExpressionBinding.cs
- ButtonStandardAdapter.cs
- TagMapInfo.cs
- ProgressBarAutomationPeer.cs
- securitymgrsite.cs
- ImageClickEventArgs.cs
- WorkflowInstance.cs
- IndicCharClassifier.cs
- ExeContext.cs
- ImmutableAssemblyCacheEntry.cs
- TableLayoutSettings.cs
- UInt16.cs
- BaseServiceProvider.cs
- OleDbError.cs
- ListViewDeletedEventArgs.cs
- ExpressionHelper.cs
- _ProxyChain.cs
- Propagator.ExtentPlaceholderCreator.cs
- InertiaRotationBehavior.cs
- InitializerFacet.cs
- TextTreeUndoUnit.cs
- NameValueConfigurationCollection.cs
- TypeNameConverter.cs
- CollectionTypeElement.cs
- formatter.cs
- XmlWellformedWriter.cs
- TrustLevel.cs
- xmlsaver.cs
- HttpResponse.cs
- TranslateTransform.cs
- XmlSchemaGroup.cs
- PolicyException.cs
- ObjectStateEntryDbDataRecord.cs
- ViewLoader.cs
- Effect.cs
- EmptyElement.cs
- Pkcs9Attribute.cs
- TypeListConverter.cs
- X509InitiatorCertificateClientElement.cs
- WebBrowserProgressChangedEventHandler.cs