Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Activation / ServiceHttpHandlerFactory.cs / 1 / ServiceHttpHandlerFactory.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.ServiceModel.Activation
{
using System.Threading;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Diagnostics;
using System.Web;
using System.Web.SessionState;
using System.Security;
class ServiceHttpHandlerFactory : IHttpHandlerFactory
{
IHttpHandler handler;
///
/// RequiresReview - Called outside PermitOnly context.
///
[SecurityRequiresReview]
public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated)
{
if (this.handler == null)
{
this.handler = new ServiceHttpHandler();
}
return this.handler;
}
///
/// RequiresReview - Called outside PermitOnly context.
///
[SecurityRequiresReview]
public void ReleaseHandler(IHttpHandler handler)
{
DiagnosticUtility.DebugAssert(handler is ServiceHttpHandler, "ASP.NET asked to release the wrong handler.");
}
class ServiceHttpHandler : IHttpAsyncHandler, IRequiresSessionState
{
public bool IsReusable
{
///
/// RequiresReview - Called outside PermitOnly context.
///
[SecurityRequiresReview]
get
{
return true;
}
}
///
/// 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);
}
///
/// 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 cb, object extraData)
{
ServiceHostingEnvironment.SafeEnsureInitialized();
return new HostedHttpRequestAsyncResult(context.ApplicationInstance, true, cb, extraData);
}
///
/// RequiresReview - Called outside PermitOnly context.
///
[SecurityRequiresReview]
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MediaEntryAttribute.cs
- EditorAttribute.cs
- securestring.cs
- BamlTreeNode.cs
- XmlTextEncoder.cs
- CellRelation.cs
- OutputCacheSection.cs
- StylusSystemGestureEventArgs.cs
- StringUtil.cs
- DataFieldConverter.cs
- GradientSpreadMethodValidation.cs
- PeerInvitationResponse.cs
- WebAdminConfigurationHelper.cs
- PenContexts.cs
- WebPartZone.cs
- ClientCultureInfo.cs
- Quack.cs
- CodeGeneratorOptions.cs
- PaintValueEventArgs.cs
- WebBrowserPermission.cs
- ThemeableAttribute.cs
- FixedSOMFixedBlock.cs
- DispatchChannelSink.cs
- SystemInfo.cs
- HttpFileCollection.cs
- SchemaObjectWriter.cs
- SectionUpdates.cs
- HttpCacheVary.cs
- AssemblyBuilder.cs
- LineProperties.cs
- XmlElementAttributes.cs
- RotateTransform.cs
- PropertyReference.cs
- SupportingTokenBindingElement.cs
- ProgramPublisher.cs
- EncoderBestFitFallback.cs
- EntityWithKeyStrategy.cs
- Margins.cs
- ProviderSettingsCollection.cs
- LinkUtilities.cs
- LogSwitch.cs
- AttributeCollection.cs
- Pkcs9Attribute.cs
- Int16Animation.cs
- ResourceCodeDomSerializer.cs
- XmlEncodedRawTextWriter.cs
- Config.cs
- IMembershipProvider.cs
- DesignerForm.cs
- GridViewPageEventArgs.cs
- AsmxEndpointPickerExtension.cs
- WindowProviderWrapper.cs
- MatrixTransform3D.cs
- ECDiffieHellmanCng.cs
- securitymgrsite.cs
- IteratorFilter.cs
- BasicHttpBinding.cs
- XmlSecureResolver.cs
- HtmlUtf8RawTextWriter.cs
- CellParaClient.cs
- InputLanguageCollection.cs
- ThreadAttributes.cs
- SharedPerformanceCounter.cs
- SafeFileMappingHandle.cs
- MetadataUtil.cs
- EditorZone.cs
- Registry.cs
- EventDescriptor.cs
- Rfc2898DeriveBytes.cs
- ListItemConverter.cs
- CorePropertiesFilter.cs
- ObjectHelper.cs
- BinaryUtilClasses.cs
- BuildResult.cs
- OdbcFactory.cs
- Configuration.cs
- XsltConvert.cs
- ReadingWritingEntityEventArgs.cs
- CompilerHelpers.cs
- TreeNodeClickEventArgs.cs
- PropertyMapper.cs
- _HelperAsyncResults.cs
- XsdValidatingReader.cs
- OleDbErrorCollection.cs
- TypeReference.cs
- SortKey.cs
- PersonalizationEntry.cs
- Overlapped.cs
- SerialReceived.cs
- serverconfig.cs
- WebPartUserCapability.cs
- CleanUpVirtualizedItemEventArgs.cs
- NonSerializedAttribute.cs
- WebPartManagerInternals.cs
- XmlObjectSerializerReadContextComplexJson.cs
- AttributeQuery.cs
- MobileRedirect.cs
- AccessorTable.cs
- SharedStream.cs
- SizeF.cs