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
- TransactionException.cs
- CodeStatement.cs
- DataGrid.cs
- StrongNameUtility.cs
- SerializerDescriptor.cs
- GridViewSelectEventArgs.cs
- peersecurityelement.cs
- DependencyPropertyAttribute.cs
- TypedReference.cs
- FixedHighlight.cs
- ConstNode.cs
- StorageInfo.cs
- CacheEntry.cs
- XappLauncher.cs
- DataGridViewRowEventArgs.cs
- BitmapSizeOptions.cs
- DiscoveryOperationContext.cs
- PrintDocument.cs
- MediaContext.cs
- InstanceKeyNotReadyException.cs
- ColorAnimation.cs
- CodeFieldReferenceExpression.cs
- TraceSection.cs
- PageThemeParser.cs
- OleDbRowUpdatedEvent.cs
- Int16AnimationBase.cs
- HttpFileCollection.cs
- WebUtil.cs
- PageTheme.cs
- QueryOptionExpression.cs
- Buffer.cs
- TypeSystem.cs
- ClientRuntimeConfig.cs
- TextAction.cs
- NotifyParentPropertyAttribute.cs
- XmlAutoDetectWriter.cs
- WebPartUserCapability.cs
- TerminatorSinks.cs
- DataSourceCache.cs
- HelpEvent.cs
- HandleRef.cs
- XmlSchemaDocumentation.cs
- FixedSchema.cs
- NominalTypeEliminator.cs
- ProcessHost.cs
- HttpListenerPrefixCollection.cs
- InvokePatternIdentifiers.cs
- UserPrincipalNameElement.cs
- TemplateBamlTreeBuilder.cs
- ContainerVisual.cs
- StateMachine.cs
- HttpCachePolicy.cs
- RuleAttributes.cs
- GridViewDeleteEventArgs.cs
- StringCollectionEditor.cs
- FormViewInsertedEventArgs.cs
- WSSecurityOneDotZeroSendSecurityHeader.cs
- JsonCollectionDataContract.cs
- ToolStripRenderEventArgs.cs
- PolyQuadraticBezierSegment.cs
- IsolatedStorageException.cs
- SystemResources.cs
- WindowsGraphicsWrapper.cs
- AssemblySettingAttributes.cs
- TreeChangeInfo.cs
- ReadWriteSpinLock.cs
- TypeHelper.cs
- MobileSysDescriptionAttribute.cs
- XmlRootAttribute.cs
- contentDescriptor.cs
- DbConnectionPoolGroup.cs
- InternalSafeNativeMethods.cs
- HtmlLink.cs
- PositiveTimeSpanValidator.cs
- DataServiceKeyAttribute.cs
- XmlDataCollection.cs
- StandardCommands.cs
- Schedule.cs
- DataGridViewDataErrorEventArgs.cs
- RealizedColumnsBlock.cs
- MetadataItemSerializer.cs
- Decimal.cs
- invalidudtexception.cs
- PersonalizablePropertyEntry.cs
- SendSecurityHeaderElementContainer.cs
- ContainerVisual.cs
- MetafileEditor.cs
- Point3DAnimationUsingKeyFrames.cs
- TextProperties.cs
- DBConnection.cs
- EpmContentDeSerializerBase.cs
- ToolStripHighContrastRenderer.cs
- _ListenerRequestStream.cs
- TransformerInfo.cs
- ProxyWebPart.cs
- WindowsStartMenu.cs
- WorkflowDataContext.cs
- DebugHandleTracker.cs
- SecurityChannelFactory.cs
- LocalValueEnumerator.cs