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);
 }
		public void Init (HttpApplication app)
		{
			sessionForStaticFiles = (Environment.GetEnvironmentVariable ("MONO_XSP_STATIC_SESSION") != null);
			if (config == null) {
				config = (SessionConfig) HttpContext.GetAppConfig ("system.web/sessionState");
				if (config ==  null)
					config = new SessionConfig (null);

				if (config.Mode == SessionStateMode.StateServer)
					handlerType = typeof (SessionStateServerHandler);

				if (config.Mode == SessionStateMode.SQLServer)
					handlerType = typeof (SessionSQLServerHandler);
				
				if (config.Mode == SessionStateMode.InProc)
					handlerType = typeof (SessionInProcHandler);

                                if (config.Mode == SessionStateMode.Off)
                                        return;
			}

			if (config.CookieLess)
				app.BeginRequest += new EventHandler (OnBeginRequest);
			
			app.AddOnAcquireRequestStateAsync (
				new BeginEventHandler (OnBeginAcquireState),
				new EndEventHandler (OnEndAcquireState));

			app.ReleaseRequestState += new EventHandler (OnReleaseRequestState);
			app.EndRequest += new EventHandler (OnEndRequest);
			
			if (handlerType != null && handler == null) {
				handler = (ISessionHandler) Activator.CreateInstance (handlerType);
				handler.Init (this, app, config); //initialize
			}
		}
Esempio n. 3
0
		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
		}
        private void InitModuleFromConfig(HttpApplication app, SessionStateSection config)
        {
            if (config.Mode != SessionStateMode.Off)
            {
                app.AddOnAcquireRequestStateAsync(new BeginEventHandler(this.BeginAcquireState), new EndEventHandler(this.EndAcquireState));
                app.ReleaseRequestState += new EventHandler(this.OnReleaseState);
                app.EndRequest += new EventHandler(this.OnEndRequest);
                this._partitionResolver = this.InitPartitionResolver(config);
                switch (config.Mode)
                {
                    case SessionStateMode.InProc:
                        if (HttpRuntime.UseIntegratedPipeline)
                        {
                            s_canSkipEndRequestCall = true;
                        }
                        this._store = new InProcSessionStateStore();
                        this._store.Initialize(null, null);
                        break;

                    case SessionStateMode.StateServer:
                        if (HttpRuntime.UseIntegratedPipeline)
                        {
                            s_canSkipEndRequestCall = true;
                        }
                        this._store = new OutOfProcSessionStateStore();
                        ((OutOfProcSessionStateStore) this._store).Initialize(null, null, this._partitionResolver);
                        break;

                    case SessionStateMode.SQLServer:
                        this._store = new SqlSessionStateStore();
                        ((SqlSessionStateStore) this._store).Initialize(null, null, this._partitionResolver);
                        break;

                    case SessionStateMode.Custom:
                        this._store = this.InitCustomStore(config);
                        break;
                }
                this._idManager = this.InitSessionIDManager(config);
                if (((config.Mode == SessionStateMode.InProc) || (config.Mode == SessionStateMode.StateServer)) && this._usingAspnetSessionIdManager)
                {
                    this._ignoreImpersonation = true;
                }
            }
        }