Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / RunTime / Hosting / WorkflowWebHostingModule.cs / 1305376 / WorkflowWebHostingModule.cs
/******************************************************************************** // Copyright (C) 2000-2001 Microsoft Corporation. All rights reserved. // // CONTENTS // Workflow Web Hosting Module. // DESCRIPTION // Implementation of Workflow Web Host Module. // REVISIONS // Date Ver By Remarks // ~~~~~~~~~~ ~~~ ~~~~~~~~ ~~~~~~~~~~~~~~ // 02/22/05 1.0 [....] Implementation. * ****************************************************************************/ #region Using directives using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.Web; using System.Collections.Specialized; using System.Threading; #endregion namespace System.Workflow.Runtime.Hosting { ////// Cookie based rotuing module implementation /// public sealed class WorkflowWebHostingModule : IHttpModule { HttpApplication currentApplication; public WorkflowWebHostingModule() { WorkflowTrace.Host.TraceEvent(TraceEventType.Information, 0, "Workflow Web Hosting Module Created"); } ////// IHttpModule.Init() /// /// void IHttpModule.Init(HttpApplication application) { WorkflowTrace.Host.TraceEvent(TraceEventType.Information, 0, "Workflow Web Hosting Module Initialized"); this.currentApplication = application; //Listen for Acquire and ReleaseRequestState event application.ReleaseRequestState += this.OnReleaseRequestState; application.AcquireRequestState += this.OnAcquireRequestState; } void IHttpModule.Dispose() { } void OnAcquireRequestState(Object sender, EventArgs e) { //Performs Cookie based routing. WorkflowTrace.Host.TraceEvent(TraceEventType.Information, 0, "WebHost Module Routing Begin"); HttpCookie routingCookie = HttpContext.Current.Request.Cookies.Get("WF_WorkflowInstanceId"); if (routingCookie != null) { HttpContext.Current.Items.Add("__WorkflowInstanceId__", new Guid(routingCookie.Value)); } //else no routing information found, it could be activation request or non workflow based request. } void OnReleaseRequestState(Object sender, EventArgs e) { //Saves cookie back to client. HttpCookie cookie = HttpContext.Current.Request.Cookies.Get("WF_WorkflowInstanceId"); if (cookie == null) { cookie = new HttpCookie("WF_WorkflowInstanceId"); Object workflowInstanceId = HttpContext.Current.Items["__WorkflowInstanceId__"]; if (workflowInstanceId != null) { cookie.Value = workflowInstanceId.ToString(); HttpContext.Current.Response.Cookies.Add(cookie); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /******************************************************************************** // Copyright (C) 2000-2001 Microsoft Corporation. All rights reserved. // // CONTENTS // Workflow Web Hosting Module. // DESCRIPTION // Implementation of Workflow Web Host Module. // REVISIONS // Date Ver By Remarks // ~~~~~~~~~~ ~~~ ~~~~~~~~ ~~~~~~~~~~~~~~ // 02/22/05 1.0 [....] Implementation. * ****************************************************************************/ #region Using directives using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.Web; using System.Collections.Specialized; using System.Threading; #endregion namespace System.Workflow.Runtime.Hosting { ////// Cookie based rotuing module implementation /// public sealed class WorkflowWebHostingModule : IHttpModule { HttpApplication currentApplication; public WorkflowWebHostingModule() { WorkflowTrace.Host.TraceEvent(TraceEventType.Information, 0, "Workflow Web Hosting Module Created"); } ////// IHttpModule.Init() /// /// void IHttpModule.Init(HttpApplication application) { WorkflowTrace.Host.TraceEvent(TraceEventType.Information, 0, "Workflow Web Hosting Module Initialized"); this.currentApplication = application; //Listen for Acquire and ReleaseRequestState event application.ReleaseRequestState += this.OnReleaseRequestState; application.AcquireRequestState += this.OnAcquireRequestState; } void IHttpModule.Dispose() { } void OnAcquireRequestState(Object sender, EventArgs e) { //Performs Cookie based routing. WorkflowTrace.Host.TraceEvent(TraceEventType.Information, 0, "WebHost Module Routing Begin"); HttpCookie routingCookie = HttpContext.Current.Request.Cookies.Get("WF_WorkflowInstanceId"); if (routingCookie != null) { HttpContext.Current.Items.Add("__WorkflowInstanceId__", new Guid(routingCookie.Value)); } //else no routing information found, it could be activation request or non workflow based request. } void OnReleaseRequestState(Object sender, EventArgs e) { //Saves cookie back to client. HttpCookie cookie = HttpContext.Current.Request.Cookies.Get("WF_WorkflowInstanceId"); if (cookie == null) { cookie = new HttpCookie("WF_WorkflowInstanceId"); Object workflowInstanceId = HttpContext.Current.Items["__WorkflowInstanceId__"]; if (workflowInstanceId != null) { cookie.Value = workflowInstanceId.ToString(); HttpContext.Current.Response.Cookies.Add(cookie); } } } } } // 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
- SoapAttributes.cs
- BaseCodeDomTreeGenerator.cs
- WebPartConnectionsEventArgs.cs
- DocumentViewerConstants.cs
- BitmapPalettes.cs
- HandleCollector.cs
- MonthCalendar.cs
- ComponentEditorPage.cs
- NameNode.cs
- CultureMapper.cs
- SqlConnectionPoolProviderInfo.cs
- LoadRetryAsyncResult.cs
- FormViewUpdateEventArgs.cs
- D3DImage.cs
- StylusPointProperties.cs
- ExpressionBuilderCollection.cs
- RegisteredHiddenField.cs
- ApplicationHost.cs
- Rights.cs
- RadioButtonRenderer.cs
- InkCanvasAutomationPeer.cs
- Array.cs
- Line.cs
- ListArgumentProvider.cs
- RightNameExpirationInfoPair.cs
- WindowsProgressbar.cs
- XmlUTF8TextReader.cs
- TableLayoutStyleCollection.cs
- SqlCharStream.cs
- WebScriptMetadataInstanceContextProvider.cs
- DataGridHeaderBorder.cs
- WorkflowServiceHost.cs
- CharUnicodeInfo.cs
- CollectionViewGroup.cs
- COAUTHIDENTITY.cs
- StaticSiteMapProvider.cs
- EntityConnectionStringBuilderItem.cs
- InvalidCastException.cs
- ReadOnlyObservableCollection.cs
- DelegatedStream.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- Lease.cs
- BooleanFunctions.cs
- IdentifierService.cs
- NullableDoubleSumAggregationOperator.cs
- DecoderExceptionFallback.cs
- DataGridViewRowCancelEventArgs.cs
- ShaderEffect.cs
- CustomLineCap.cs
- ClusterSafeNativeMethods.cs
- DispatcherHooks.cs
- WebPartCatalogCloseVerb.cs
- WaitHandleCannotBeOpenedException.cs
- ThreadStaticAttribute.cs
- CodeGeneratorOptions.cs
- HighlightOverlayGlyph.cs
- AssemblyInfo.cs
- NavigatingCancelEventArgs.cs
- EncryptedReference.cs
- XmlCharCheckingWriter.cs
- OleDbParameter.cs
- BinaryWriter.cs
- SettingsProperty.cs
- SByteStorage.cs
- DecodeHelper.cs
- columnmapkeybuilder.cs
- Facet.cs
- ViewRendering.cs
- COSERVERINFO.cs
- ChangesetResponse.cs
- Helper.cs
- FunctionNode.cs
- newinstructionaction.cs
- OleDbConnection.cs
- Visitors.cs
- ComNativeDescriptor.cs
- ServiceObjectContainer.cs
- SecurityDescriptor.cs
- SqlProfileProvider.cs
- CodeParameterDeclarationExpressionCollection.cs
- VoiceSynthesis.cs
- InheritanceRules.cs
- ListBoxChrome.cs
- RotateTransform.cs
- TouchPoint.cs
- EncodingDataItem.cs
- SqlFlattener.cs
- TakeOrSkipWhileQueryOperator.cs
- ScrollItemProviderWrapper.cs
- TableItemStyle.cs
- CellNormalizer.cs
- NotifyIcon.cs
- DynamicValueConverter.cs
- GridViewColumnHeaderAutomationPeer.cs
- DataControlFieldCell.cs
- SupportsEventValidationAttribute.cs
- CurrentChangedEventManager.cs
- EntityProviderFactory.cs
- DataGridViewCellStyleConverter.cs
- ArgumentNullException.cs