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
- MethodBody.cs
- PlainXmlSerializer.cs
- Track.cs
- LayoutSettings.cs
- StreamReader.cs
- SqlLiftWhereClauses.cs
- PropertyToken.cs
- DocumentProperties.cs
- SqlBuilder.cs
- ImpersonateTokenRef.cs
- CachedFontFace.cs
- FormViewDeleteEventArgs.cs
- BinaryObjectInfo.cs
- SoapSchemaMember.cs
- OverrideMode.cs
- ObservableCollection.cs
- HttpDictionary.cs
- TypeConverterHelper.cs
- ToolStripRenderer.cs
- FormViewUpdatedEventArgs.cs
- XmlException.cs
- SoundPlayerAction.cs
- AppSettingsExpressionEditor.cs
- FaultHandlingFilter.cs
- GridViewHeaderRowPresenter.cs
- CodeAttributeDeclarationCollection.cs
- safelink.cs
- ManagementObject.cs
- EnvironmentPermission.cs
- CodePrimitiveExpression.cs
- SupportingTokenSecurityTokenResolver.cs
- LayoutSettings.cs
- DirtyTextRange.cs
- DataDocumentXPathNavigator.cs
- Options.cs
- Process.cs
- DrawingVisual.cs
- ComponentEditorForm.cs
- MinMaxParagraphWidth.cs
- GroupPartitionExpr.cs
- UIElementIsland.cs
- ParameterBinding.cs
- EventDescriptor.cs
- ExtensionSimplifierMarkupObject.cs
- ThousandthOfEmRealDoubles.cs
- OletxEnlistment.cs
- ExpressionHelper.cs
- ReferencedAssembly.cs
- FontInfo.cs
- WebPartTransformerCollection.cs
- TcpHostedTransportConfiguration.cs
- XmlSchemaSearchPattern.cs
- OrCondition.cs
- RuleInfoComparer.cs
- StringFreezingAttribute.cs
- CodeTypeOfExpression.cs
- TransactionalPackage.cs
- SqlBulkCopy.cs
- IsolatedStorageFilePermission.cs
- ByteStream.cs
- XmlObjectSerializerWriteContextComplex.cs
- EventLevel.cs
- M3DUtil.cs
- TraceListeners.cs
- InfiniteTimeSpanConverter.cs
- AsymmetricKeyExchangeDeformatter.cs
- GotoExpression.cs
- IdnElement.cs
- BadImageFormatException.cs
- PersistChildrenAttribute.cs
- ResXFileRef.cs
- SQLInt32Storage.cs
- SuspendDesigner.cs
- LogicalExpr.cs
- ManifestSignedXml.cs
- AudioDeviceOut.cs
- RuntimeWrappedException.cs
- Models.cs
- DefinitionUpdate.cs
- EntityDataSourceDesigner.cs
- DataGridViewUtilities.cs
- documentation.cs
- ToolTip.cs
- MetadataItemEmitter.cs
- Nullable.cs
- unsafeIndexingFilterStream.cs
- ControlCommandSet.cs
- SharedPersonalizationStateInfo.cs
- RelationshipEnd.cs
- EntitySetBase.cs
- lengthconverter.cs
- CodeSnippetCompileUnit.cs
- Model3D.cs
- Camera.cs
- PipeSecurity.cs
- MergablePropertyAttribute.cs
- SubclassTypeValidator.cs
- DataErrorValidationRule.cs
- MruCache.cs
- TableLayoutSettings.cs