private void InitModuleFromConfig(HttpApplication app, SessionStateSection config) { if (config.Mode == SessionStateMode.Off) { return; } app.AddOnAcquireRequestStateAsync(BeginAcquireState, EndAcquireState); app.AddOnReleaseRequestStateAsync(BeginOnReleaseState, EndOnReleaseState); app.AddOnEndRequestAsync(BeginOnEndRequest, EndOnEndRequest); if (config.Mode == SessionStateMode.Custom) { _store = InitCustomStore(config); } else if (config.Mode == SessionStateMode.InProc) { _store = new InProcSessionStateStoreAsync(); _store.Initialize(null, null); } else { throw new ConfigurationErrorsException(SR.Not_Support_SessionState_Mode); } _idManager = InitSessionIDManager(config); }
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); }
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; } } }
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 }
void InitModuleFromConfig(HttpApplication app, SessionStateSection config) { if (config.Mode == SessionStateMode.Off) { return; } app.AddOnAcquireRequestStateAsync( new BeginEventHandler(this.BeginAcquireState), new EndEventHandler(this.EndAcquireState)); app.ReleaseRequestState += new EventHandler(this.OnReleaseState); app.EndRequest += new EventHandler(this.OnEndRequest); _partitionResolver = InitPartitionResolver(config); switch (config.Mode) { case SessionStateMode.InProc: if (HttpRuntime.UseIntegratedPipeline) { s_canSkipEndRequestCall = true; } _store = new InProcSessionStateStore(); _store.Initialize(null, null); break; #if !FEATURE_PAL // FEATURE_PAL does not enable out of proc session state case SessionStateMode.StateServer: if (HttpRuntime.UseIntegratedPipeline) { s_canSkipEndRequestCall = true; } _store = new OutOfProcSessionStateStore(); ((OutOfProcSessionStateStore)_store).Initialize(null, null, _partitionResolver); break; case SessionStateMode.SQLServer: _store = new SqlSessionStateStore(); ((SqlSessionStateStore)_store).Initialize(null, null, _partitionResolver); #if DBG ((SqlSessionStateStore)_store).SetModule(this); #endif break; #else // !FEATURE_PAL case SessionStateMode.StateServer: throw new NotImplementedException("ROTORTODO"); break; case SessionStateMode.SQLServer: throw new NotImplementedException("ROTORTODO"); break; #endif // !FEATURE_PAL case SessionStateMode.Custom: _store = InitCustomStore(config); break; default: break; } // We depend on SessionIDManager to manage session id _idManager = InitSessionIDManager(config); if ((config.Mode == SessionStateMode.InProc || config.Mode == SessionStateMode.StateServer) && _usingAspnetSessionIdManager) { // If we're using InProc mode or StateServer mode, and also using our own session id module, // we know we don't care about impersonation in our all session state store read/write // and session id read/write. _ignoreImpersonation = true; } }
public void Init(HttpApplication application) { application.BeginRequest += new EventHandler(application_BeginRequest); application.PostResolveRequestCache += new EventHandler(this.OnApplicationPostResolveRequestCache); application.PostMapRequestHandler += new EventHandler(this.OnApplicationPostMapRequestHandler); application.AuthenticateRequest += new EventHandler(OnAuthenticateRequest); application.AddOnAcquireRequestStateAsync(new BeginEventHandler(this.BeginAcquireState), new EndEventHandler(this.EndAcquireState)); application.ReleaseRequestState += new EventHandler(this.OnReleaseState); application.EndRequest += new EventHandler(this.OnEndRequest); HttpModuleCollection modules = null; var moduleCollectionField = typeof(HttpApplication).GetField("_moduleCollection", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); if (moduleCollectionField != null) { try { modules = (HttpModuleCollection)moduleCollectionField.GetValue(application); } catch (System.Reflection.TargetInvocationException ex) { if (ex.InnerException != null) { throw ex.InnerException; } throw; } } else { modules = application.Modules; } var sessionModule = modules["Session"] as SessionStateModule; if (sessionModule != null) { var mBeginAcquireState = typeof(SessionStateModule).GetMethod("BeginAcquireState", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); var mEndAcquireState = typeof(SessionStateModule).GetMethod("EndAcquireState", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); var mReleaseState = typeof(SessionStateModule).GetMethod("OnReleaseState", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); var mEndRequest = typeof(SessionStateModule).GetMethod("OnEndRequest", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); _beginEventHandler = (BeginEventHandler)Delegate.CreateDelegate(typeof(BeginEventHandler), sessionModule, mBeginAcquireState); _sessionEndEventHandler = (EndEventHandler)Delegate.CreateDelegate(typeof(EndEventHandler), sessionModule, mEndAcquireState); _sessionOnReleaseState = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), sessionModule, mReleaseState); _sessionOnEndRequest = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), sessionModule, mEndRequest); } var formsAuthModule = modules["FormsAuthentication"] as FormsAuthenticationModule; if (formsAuthModule != null) { var mOnEnter = typeof(FormsAuthenticationModule).GetMethod("OnEnter", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); var mOnLeave = typeof(FormsAuthenticationModule).GetMethod("OnLeave", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); _formsAuthOnEnter = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), formsAuthModule, mOnEnter); _formsAuthOnLeave = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), formsAuthModule, mOnLeave); } var windowsAuthModule = modules["WindowsAuthentication"] as WindowsAuthenticationModule; if (formsAuthModule != null) { var mOnEnter = typeof(WindowsAuthenticationModule).GetMethod("OnEnter", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); _windowsAuthOnEnter = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), windowsAuthModule, mOnEnter); } }