Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PageAsyncTaskManager.cs
- UnknownBitmapEncoder.cs
- DispatcherHookEventArgs.cs
- SelectionRangeConverter.cs
- XsltQilFactory.cs
- CommandField.cs
- PageAsyncTaskManager.cs
- WorkflowExecutor.cs
- KoreanLunisolarCalendar.cs
- LostFocusEventManager.cs
- XmlNamespaceMapping.cs
- ButtonStandardAdapter.cs
- XmlAttributes.cs
- XsdValidatingReader.cs
- ScriptResourceInfo.cs
- HashStream.cs
- DbgUtil.cs
- ExpressionEditorAttribute.cs
- BaseHashHelper.cs
- MembershipSection.cs
- SymbolMethod.cs
- HierarchicalDataBoundControlAdapter.cs
- XmlReaderDelegator.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- AccessText.cs
- LogExtentCollection.cs
- SettingsProviderCollection.cs
- ClientConfigurationSystem.cs
- SchemaNames.cs
- WriteableBitmap.cs
- FormViewUpdatedEventArgs.cs
- DataSvcMapFileSerializer.cs
- ActivationWorker.cs
- BamlTreeMap.cs
- ToolStripContainer.cs
- ScrollChrome.cs
- ProcessModelSection.cs
- StateElementCollection.cs
- HeaderedItemsControl.cs
- Array.cs
- LinqDataSourceView.cs
- SecurityContext.cs
- Hyperlink.cs
- Mouse.cs
- VirtualPath.cs
- AssemblyBuilder.cs
- DataGridSortingEventArgs.cs
- ToolStripPanelRow.cs
- TemplateBindingExtension.cs
- IISUnsafeMethods.cs
- HostProtectionPermission.cs
- NamespaceList.cs
- UrlPath.cs
- DateTime.cs
- TextProperties.cs
- TypeListConverter.cs
- ShapingEngine.cs
- NamespaceCollection.cs
- ConnectorSelectionGlyph.cs
- LinqDataSourceValidationException.cs
- SecUtil.cs
- ApplicationId.cs
- PerformanceCounterPermission.cs
- ThreadStartException.cs
- DictionaryKeyPropertyAttribute.cs
- MsdtcWrapper.cs
- Console.cs
- AddInEnvironment.cs
- SiteMapHierarchicalDataSourceView.cs
- ReverseComparer.cs
- OdbcConnectionHandle.cs
- SAPIEngineTypes.cs
- XmlDomTextWriter.cs
- OciLobLocator.cs
- ToolStripLabel.cs
- RemotingSurrogateSelector.cs
- ChangeBlockUndoRecord.cs
- StyleSheetDesigner.cs
- ModulesEntry.cs
- ThicknessAnimationUsingKeyFrames.cs
- HtmlEncodedRawTextWriter.cs
- IgnoreFileBuildProvider.cs
- hwndwrapper.cs
- PointHitTestParameters.cs
- CultureSpecificStringDictionary.cs
- TextMetrics.cs
- Int32CollectionConverter.cs
- ManagementEventArgs.cs
- CompiledXpathExpr.cs
- QueryFunctions.cs
- autovalidator.cs
- DesignerProperties.cs
- IteratorFilter.cs
- DPCustomTypeDescriptor.cs
- BCLDebug.cs
- SchemaComplexType.cs
- HtmlInputRadioButton.cs
- WebPartCatalogAddVerb.cs
- NavigationFailedEventArgs.cs
- Connector.cs