Example #1
0
        /// <summary>
        /// An event handdler to summary the selected sessions
        /// Fire when user selects a session or switch tab
        /// If no session is selected, oSessions is an empty array
        /// </summary>
        private void DisplayResults(Session[] oSessions)
        {
            // If we're not at FeederNetInspector tab right now, reset our UI and bail out
            if (FiddlerApplication.UI.tabsViews.SelectedTab.Text != "FeederNetInspector")
            {
                container.Reset();
                if (oSessions.Length > 0)
                {
                    UnselectSessions(oSessions);
                }
                return;
            }
            // Filter sessions in the list view, keep only sessions that contain host name.
            FilterSessionListByHostName(container.GetHostName());

            try
            {
                if (oSessions.Length < 1)
                {
                    return;
                }
                Tuple <List <Request>, List <Response> > captureOutputTuple = GetRequestListResponseListAsTuple(oSessions);
                RequestSessionModel  requestSessionModel  = new RequestSessionModel(captureOutputTuple.Item1);
                ResponseSessionModel responseSessionModel = new ResponseSessionModel(captureOutputTuple.Item2);
                container.SetTbRequests(requestSessionModel);
                container.SetTbResponses(responseSessionModel);
            }
            catch (Exception e)
            {
                FiddlerApplication.Log.LogString(e.ToString());
                MessageBox.Show(e.Message, "Errors");
            }
        }
        private void DisplayResults(Session[] oSessions)
        {
            // If we're not showing the Stats tab right now, bail out.
            if (FiddlerApplication.UI.tabsViews.SelectedTab.Text != "FeederNetInspector")
            {
                return;
            }

            try
            {
                if (oSessions.Length < 1)
                {
                    return;
                }
                container.ToggleLabelLoading();
                Tuple <string, string> captureOutputTuple   = getCaptureOutputTuple(oSessions);
                RequestSessionModel    requestSessionModel  = new RequestSessionModel();
                ResponseSessionModel   responseSessionModel = new ResponseSessionModel();
                requestSessionModel.RequestBody   = captureOutputTuple.Item1;
                responseSessionModel.ResponseBody = captureOutputTuple.Item2;
                container.SetTbRequests(requestSessionModel);
                container.SetTbResponses(responseSessionModel);
                container.ToggleLabelLoading();
            }
            catch (Exception e)
            {
                FiddlerApplication.Log.LogString(e.ToString());
                MessageBox.Show(e.Message, "Errors");
            }


            //Main.oSessions = oSessions;
            //FiddlerObject.uiInvoke(new MethodInvoker(UpdateUi));


            // must marshal and synchronize to UI thread
            //FiddlerApplication.UI.BeginInvoke(new Action<string>(text =>
            //{
            //container.SetTbRequests(requestSessionModel);
            //container.SetTbResponses(responseSessionModel);
            //}), captureOutputTuple.Item1);
        }
Example #3
0
 public void SetTbResponses(ResponseSessionModel responseSessionModel)
 {
     tbResponse.Text = responseSessionModel.ResponseBody;
 }
Example #4
0
        public void SetTbResponses(ResponseSessionModel responseSessionModel)
        {
            // Clear list
            lvResponse.Items.Clear();
            lvResponseIndicator.Items.Clear();
            List <bool> responseIndicatorList = new List <bool>();

            foreach (Response response in responseSessionModel.ResponseList)
            {
                // Construct Response Headers
                ListViewItem lviResponseHeaderHeading = new ListViewItem
                {
                    Content    = "Response Header",
                    FontSize   = 12,
                    FontWeight = FontWeights.UltraBold,
                };
                lvResponse.Items.Add(lviResponseHeaderHeading);
                responseIndicatorList.Add(false);

                string[] responseHeaderLines = response.ResponseHeaders.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
                foreach (string line in responseHeaderLines)
                {
                    lvResponse.Items.Add(line);
                    responseIndicatorList.Add(false);
                }
                // Construct Response Body
                ListViewItem lviResponseBodyHeading = new ListViewItem
                {
                    Content    = "Response Body",
                    FontSize   = 12,
                    FontWeight = FontWeights.UltraBold
                };
                lvResponse.Items.Add(lviResponseBodyHeading);
                responseIndicatorList.Add(false);

                string[] responseBodyLines = (JsonHelper.FormatJson(response.ResponseBody)).Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
                foreach (string line in responseBodyLines)
                {
                    bool isPersonalInformationExposed = false;
                    foreach (PersonalInformation pi in response.PersonalInformationList)
                    {
                        if (line.Contains(pi.Value))
                        {
                            isPersonalInformationExposed = true;
                            break;
                        }
                    }

                    if (isPersonalInformationExposed)
                    {
                        ListViewItem lvi = new ListViewItem
                        {
                            Content    = line,
                            FontSize   = 12,
                            Background = Brushes.Yellow,
                            FontWeight = FontWeights.UltraBold,
                        };
                        lvResponse.Items.Add(lvi);
                        responseIndicatorList.Add(true);
                    }
                    else
                    {
                        lvResponse.Items.Add(line);
                        responseIndicatorList.Add(false);
                    }
                }
            }

            // lvResponseIndicator
            int lvResponseIndicatorItemHeight = (int)lvResponseIndicator.ActualHeight / responseIndicatorList.Count;

            for (int i = 0; i < responseIndicatorList.Count; i++)
            {
                if (responseIndicatorList[i])
                {
                    lvResponseIndicator.Items.Add(new ListViewItem
                    {
                        Content    = "",
                        Background = Brushes.Yellow,
                        Height     = lvResponseIndicatorItemHeight,
                    });
                }
                else
                {
                    lvResponseIndicator.Items.Add(new ListViewItem
                    {
                        Content    = "",
                        Height     = lvResponseIndicatorItemHeight,
                        Visibility = Visibility.Hidden,
                        IsEnabled  = false,
                    });
                }
            }

            // tbDetails
            string details = "";

            foreach (Response response in responseSessionModel.ResponseList)
            {
                foreach (PersonalInformation pi in response.PersonalInformationList)
                {
                    details += "key: " + pi.Key + "\n";
                    details += "value: " + pi.Value + "\n";
                }
            }
            tbDetails.Text = details;
        }