public void Init(HttpApplication app) { app.AddOnPreRequestHandlerExecuteAsync( new BeginEventHandler(this.BeginPreHandlerExecute), new EndEventHandler(this.EndPreHandlerExecute)); _app = app; }
public void Initialize(HttpApplication application) { for (IntegratedPipelineBlueprintStage stage = _blueprint.FirstStage; stage != null; stage = stage.NextStage) { var segment = new IntegratedPipelineContextStage(this, stage); switch (stage.Name) { case Constants.StageAuthenticate: application.AddOnAuthenticateRequestAsync(segment.BeginEvent, segment.EndEvent); break; case Constants.StagePostAuthenticate: application.AddOnPostAuthenticateRequestAsync(segment.BeginEvent, segment.EndEvent); break; case Constants.StageAuthorize: application.AddOnAuthorizeRequestAsync(segment.BeginEvent, segment.EndEvent); break; case Constants.StagePostAuthorize: application.AddOnPostAuthorizeRequestAsync(segment.BeginEvent, segment.EndEvent); break; case Constants.StageResolveCache: application.AddOnResolveRequestCacheAsync(segment.BeginEvent, segment.EndEvent); break; case Constants.StagePostResolveCache: application.AddOnPostResolveRequestCacheAsync(segment.BeginEvent, segment.EndEvent); break; case Constants.StageMapHandler: application.AddOnMapRequestHandlerAsync(segment.BeginEvent, segment.EndEvent); break; case Constants.StagePostMapHandler: application.AddOnPostMapRequestHandlerAsync(segment.BeginEvent, segment.EndEvent); break; case Constants.StageAcquireState: application.AddOnAcquireRequestStateAsync(segment.BeginEvent, segment.EndEvent); break; case Constants.StagePostAcquireState: application.AddOnPostAcquireRequestStateAsync(segment.BeginEvent, segment.EndEvent); break; case Constants.StagePreHandlerExecute: application.AddOnPreRequestHandlerExecuteAsync(segment.BeginEvent, segment.EndEvent); break; default: throw new NotSupportedException( string.Format(CultureInfo.InvariantCulture, Resources.Exception_UnsupportedPipelineStage, stage.Name)); } } // application.PreSendRequestHeaders += PreSendRequestHeaders; // Null refs for async un-buffered requests with bodies. application.AddOnEndRequestAsync(BeginFinalWork, EndFinalWork); }
/// <summary> /// Initializes the module and prepares it to handle requests. /// </summary> /// <param name="application">An HttpApplication that provides access to the methods, properties, and events common to all application objects within an ASP.NET application.</param> public void Init(HttpApplication application) { //http://support.microsoft.com/kb/911816 // Do this one time for each AppDomain. if (!_initialized) { lock (_objLock) { if (!_initialized) { if (Log.IsInfoEnabled) { Log.Info("************************************"); Log.Info(__Res.GetString(__Res.Fluorine_Start)); Log.Info(__Res.GetString(__Res.Fluorine_Version, Assembly.GetExecutingAssembly().GetName().Version)); Log.Info(string.Format("Common language runtime version {0}", Environment.Version)); Log.Info("************************************"); Log.Info(__Res.GetString(__Res.MessageServer_Create)); } try { // See if we're running in full trust new PermissionSet(PermissionState.Unrestricted).Demand(); //LinkDemands and InheritenceDemands Occur at JIT Time //http://blogs.msdn.com/shawnfa/archive/2006/01/11/511716.aspx WireAppDomain(); RegisterObject(); } catch (MethodAccessException){} catch (SecurityException){} FluorineWebContext.Initialize(); Log.Info(__Res.GetString(__Res.ServiceBrowser_Aquire)); try { Type type = ObjectFactory.Locate("FluorineFx.ServiceBrowser.ServiceBrowserRenderer"); if (type != null) { _serviceBrowserRenderer = Activator.CreateInstance(type) as IServiceBrowserRenderer; if (_serviceBrowserRenderer != null) Log.Info(__Res.GetString(__Res.ServiceBrowser_Aquired)); } } catch (Exception ex) { Log.Fatal(__Res.GetString(__Res.ServiceBrowser_AquireFail), ex); } try { _messageServer = new MessageServer(); string[] possibleConfigFolderPaths = new string[PossibleConfigFolderNames.Length]; for (int i = 0; i < PossibleConfigFolderNames.Length; i++) { string configPath = Path.Combine(HttpRuntime.AppDomainAppPath, PossibleConfigFolderNames[i]); possibleConfigFolderPaths[i] = configPath; } _messageServer.Init(possibleConfigFolderPaths, _serviceBrowserRenderer != null); _messageServer.Start(); Log.Info(__Res.GetString(__Res.MessageServer_Started)); HttpContext.Current.Application[FluorineMessageServerKey] = _messageServer; } catch (Exception ex) { Log.Fatal(__Res.GetString(__Res.MessageServer_StartError), ex); } _handlers.Add(new AmfRequestHandler(this)); _handlers.Add(new StreamingAmfRequestHandler(this)); _handlers.Add(new RtmptRequestHandler(this)); _handlers.Add(new JsonRpcRequestHandler(this)); _initialized = true; } } } //Wire up the HttpApplication events. // //BeginRequest //AuthenticateRequest //AuthorizeRequest //ResolveRequestCache //A handler (a page corresponding to the request URL) is created at this point. //AcquireRequestState ** Session State ** //PreRequestHandlerExecute //[The handler is executed.] //PostRequestHandlerExecute //ReleaseRequestState //Response filters, if any, filter the output. //UpdateRequestCache //EndRequest application.BeginRequest += ApplicationBeginRequest; if (!FluorineConfiguration.Instance.FluorineSettings.Runtime.AsyncHandler) { application.PreRequestHandlerExecute += ApplicationPreRequestHandlerExecute; } else { application.AddOnPreRequestHandlerExecuteAsync(BeginPreRequestHandlerExecute, EndPreRequestHandlerExecute); } application.AuthenticateRequest += ApplicationAuthenticateRequest; //This implementation hooks the ReleaseRequestState and PreSendRequestHeaders events to //figure out as late as possible if we should install the filter. //The Post Release Request State is the event most fitted for the task of adding a filter //Everything else is too soon or too late. At this point in the execution phase the entire //response content is created and the page has fully executed but still has a few modules to go through //from an ASP.NET perspective. We filter the content here and all of the javascript renders correctly. //application.PostReleaseRequestState += new EventHandler(this.CompressContent); application.ReleaseRequestState += ApplicationReleaseRequestState; application.PreSendRequestHeaders += ApplicationPreSendRequestHeaders; application.EndRequest += ApplicationEndRequest; }
public void Events_Deny_Unrestricted () { HttpApplication app = new HttpApplication (); app.Disposed += new EventHandler (Handler); app.Error += new EventHandler (Handler); app.PreSendRequestContent += new EventHandler (Handler); app.PreSendRequestHeaders += new EventHandler (Handler); app.AcquireRequestState += new EventHandler (Handler); app.AuthenticateRequest += new EventHandler (Handler); app.AuthorizeRequest += new EventHandler (Handler); app.BeginRequest += new EventHandler (Handler); app.EndRequest += new EventHandler (Handler); app.PostRequestHandlerExecute += new EventHandler (Handler); app.PreRequestHandlerExecute += new EventHandler (Handler); app.ReleaseRequestState += new EventHandler (Handler); app.ResolveRequestCache += new EventHandler (Handler); app.UpdateRequestCache += new EventHandler (Handler); app.AddOnAcquireRequestStateAsync (null, null); app.AddOnAuthenticateRequestAsync (null, null); app.AddOnAuthorizeRequestAsync (null, null); app.AddOnBeginRequestAsync (null, null); app.AddOnEndRequestAsync (null, null); app.AddOnPostRequestHandlerExecuteAsync (null, null); app.AddOnPreRequestHandlerExecuteAsync (null, null); app.AddOnReleaseRequestStateAsync (null, null); app.AddOnResolveRequestCacheAsync (null, null); app.AddOnUpdateRequestCacheAsync (null, null); app.Disposed -= new EventHandler (Handler); app.Error -= new EventHandler (Handler); app.PreSendRequestContent -= new EventHandler (Handler); app.PreSendRequestHeaders -= new EventHandler (Handler); app.AcquireRequestState -= new EventHandler (Handler); app.AuthenticateRequest -= new EventHandler (Handler); app.AuthorizeRequest -= new EventHandler (Handler); app.BeginRequest -= new EventHandler (Handler); app.EndRequest -= new EventHandler (Handler); app.PostRequestHandlerExecute -= new EventHandler (Handler); app.PreRequestHandlerExecute -= new EventHandler (Handler); app.ReleaseRequestState -= new EventHandler (Handler); app.ResolveRequestCache -= new EventHandler (Handler); app.UpdateRequestCache -= new EventHandler (Handler); #if NET_2_0 app.PostAuthenticateRequest += new EventHandler (Handler); app.PostAuthorizeRequest += new EventHandler (Handler); app.PostResolveRequestCache += new EventHandler (Handler); app.PostMapRequestHandler += new EventHandler (Handler); app.PostAcquireRequestState += new EventHandler (Handler); app.PostReleaseRequestState += new EventHandler (Handler); app.PostUpdateRequestCache += new EventHandler (Handler); app.AddOnPostAuthenticateRequestAsync (null, null); app.AddOnPostAuthenticateRequestAsync (null, null, null); app.AddOnPostAuthorizeRequestAsync (null, null); app.AddOnPostAuthorizeRequestAsync (null, null, null); app.AddOnPostResolveRequestCacheAsync (null, null); app.AddOnPostResolveRequestCacheAsync (null, null, null); app.AddOnPostMapRequestHandlerAsync (null, null); app.AddOnPostMapRequestHandlerAsync (null, null, null); app.AddOnPostAcquireRequestStateAsync (null, null); app.AddOnPostAcquireRequestStateAsync (null, null, null); app.AddOnPostReleaseRequestStateAsync (null, null); app.AddOnPostReleaseRequestStateAsync (null, null, null); app.AddOnPostUpdateRequestCacheAsync (null, null); app.AddOnPostUpdateRequestCacheAsync (null, null, null); app.AddOnAcquireRequestStateAsync (null, null, null); app.AddOnAuthenticateRequestAsync (null, null, null); app.AddOnAuthorizeRequestAsync (null, null, null); app.AddOnBeginRequestAsync (null, null, null); app.AddOnEndRequestAsync (null, null, null); app.AddOnPostRequestHandlerExecuteAsync (null, null, null); app.AddOnPreRequestHandlerExecuteAsync (null, null, null); app.AddOnReleaseRequestStateAsync (null, null, null); app.AddOnResolveRequestCacheAsync (null, null, null); app.AddOnUpdateRequestCacheAsync (null, null, null); app.PostAuthenticateRequest -= new EventHandler (Handler); app.PostAuthorizeRequest -= new EventHandler (Handler); app.PostResolveRequestCache -= new EventHandler (Handler); app.PostMapRequestHandler -= new EventHandler (Handler); app.PostAcquireRequestState -= new EventHandler (Handler); app.PostReleaseRequestState -= new EventHandler (Handler); app.PostUpdateRequestCache -= new EventHandler (Handler); #endif }