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 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 }
public void Init(HttpApplication app) { app.AddOnPostAcquireRequestStateAsync((s, e, cb, state) => { HttpContext context = app.Context; var tar = new TypedAsyncResult<Identity>(cb, state); if (context.Session == null || !context.Request.Url.AbsolutePath.Contains("/Connect")) { tar.Complete(true); return tar; } var util = new OAuthContext(AppId, AppSecret) { Culture = CultureInfo.CurrentCulture, ExProcessor = ex => Debug.Write(ex), }; util.SessionStorage = new AspNetSessionStore(context, util); util.BeginAuthenticateRequest(context, tar.AsSafe(ar => { util.EndAuthenticateRequest(ar); tar.Complete(new Identity(util), false); }), null); return tar; }, ar => { var ident = TypedAsyncResult<Identity>.End(ar, null); if (ident == null) return; HttpContext context = app.Context; if (!ident.IsAuthenticated) { //var @params = new Dictionary<string, string> { { "scope", "user_birthday" } }; context.Response.Redirect(ident.AuthContext.GetLoginUrl(context.Request.Url, new LoginParams { ReqPerms = "user_birthday" }), false); context.ApplicationInstance.CompleteRequest(); return; } context.User = new GenericPrincipal(ident, null); }); }