public static SessionHandlerResponse SessionHandler(SessionHandlerRequest request) { return(SessionCore.SessionHandler(request)); }
public static SessionHandlerResponse SessionHandler(SessionHandlerRequest request) { var socket = request.Head.Socket; var socketid = socket.ConnectionInfo.Id; var name = request.EventName.ToString(); var id = name + "_" + socketid; //var hasHandlerEvent = FiddlerHelper.EventHandlers.Keys.ToList().Exists(key => key.StartsWith(name)); if (request.EventType == EventType.Add) //&& !hasHandlerEvent) { SessionStateHandler handler = session => SendSessionStateHandler(name, request.EventName, socket, session); switch (request.EventName) { case EventName.BeforeRequest: FiddlerApplication.BeforeRequest += handler; break; case EventName.BeforeResponse: FiddlerApplication.BeforeResponse += handler; break; case EventName.AfterSessionComplete: FiddlerApplication.AfterSessionComplete += handler; break; case EventName.BeforeReturningError: FiddlerApplication.BeforeReturningError += handler; break; case EventName.RequestHeadersAvailable: FiddlerApplication.RequestHeadersAvailable += handler; break; case EventName.ResponseHeadersAvailable: FiddlerApplication.ResponseHeadersAvailable += handler; break; default: return(null); } FiddlerHelper.EventHandlers.Add(id, handler); } else if (request.EventType == EventType.Remove && FiddlerHelper.EventHandlers.ContainsKey(id)) { var handler = FiddlerHelper.EventHandlers[id]; switch (request.EventName) { case EventName.BeforeRequest: FiddlerApplication.BeforeRequest -= handler; break; case EventName.BeforeResponse: FiddlerApplication.BeforeResponse -= handler; break; case EventName.AfterSessionComplete: FiddlerApplication.AfterSessionComplete -= handler; break; case EventName.BeforeReturningError: FiddlerApplication.BeforeReturningError -= handler; break; case EventName.RequestHeadersAvailable: FiddlerApplication.RequestHeadersAvailable -= handler; break; case EventName.ResponseHeadersAvailable: FiddlerApplication.ResponseHeadersAvailable -= handler; break; default: return(null); } FiddlerHelper.EventHandlers.Remove(id); } return(null); }