private void myFreeHttpWindow_OnGetSessionSeekHead(object sender, FreeHttpWindow.GetSessionSeekHeadEventArgs e) { Session tempSession = Fiddler.FiddlerObject.UI.GetFirstSelectedSession(); if (tempSession == null) { FreeHttpWindow.MarkWarnControl(Fiddler.FiddlerApplication.UI.lvSessions); } else { if (e != null && e.ResquestHead.Key != null) { //HTTPHeaderItem nowHTTPHeaderItem = tempSession.RequestHeaders.First(hTTPHeaderItem => hTTPHeaderItem.Name == e.ResquestHead.Key); HTTPHeaderItem nowHTTPHeaderItem = tempSession.RequestHeaders.FirstOrDefault(hTTPHeaderItem => hTTPHeaderItem.Name == e.ResquestHead.Key); if (nowHTTPHeaderItem != null) { e.ResquestHead = new KeyValuePair <string, string>(nowHTTPHeaderItem.Name, nowHTTPHeaderItem.Value); e.SeekUri = tempSession.fullUrl; } } if (e != null && e.ResponseHead.Key != null) { HTTPHeaderItem nowHTTPHeaderItem = tempSession.ResponseHeaders.FirstOrDefault(hTTPHeaderItem => hTTPHeaderItem.Name == e.ResponseHead.Key); if (nowHTTPHeaderItem != null) { e.ResponseHead = new KeyValuePair <string, string>(nowHTTPHeaderItem.Name, nowHTTPHeaderItem.Value); e.SeekUri = tempSession.fullUrl; } } } }
public override bool BeforeRequest(Session session, Rule rule) { // Find the headers HTTPHeaderItem activeHeader = null; foreach (HTTPHeaderItem header in session.oRequest.headers) { if (header.Name.Equals("Cookie", StringComparison.OrdinalIgnoreCase)) { activeHeader = header; } } if (activeHeader != null) { var cookies = activeHeader.Value.Split(new[] { "; ", ";" }, StringSplitOptions.RemoveEmptyEntries); var updated = false; for (var i = 0; i < cookies.Length; i++) { var cookie = cookies[i]; if (cookie.StartsWith(this.Name + "=", StringComparison.OrdinalIgnoreCase)) // Ignore case? { var value = cookie.Substring(this.Name.Length + 1); // Run all the sub actions. foreach (var action in this.Actions) { updated = true; value = action.Run(session, value); } if (String.IsNullOrEmpty(value)) { cookies[i] = String.Empty; } else { cookies[i] = cookie.Substring(0, this.Name.Length) + "=" + value; } } } if (updated) { // Set the new value. activeHeader.Value = String.Join("; ", cookies.Where(c => !String.IsNullOrEmpty(c))); RuleLog.Current.AddRule(rule, session, String.Format("Cookies Updated ({0})", session.hostname)); } } return(true); }
private void AddHeader(StringBuilder code, HTTPHeaderItem header) { if (header.Name == "Cookie") { code.AppendLine($"//request.AddHeader(\"{header.Name}\",\"{header.Value}\");"); } else if (_headerOverrides.ContainsKey(header.Name)) { code.AppendLine($"request.AddHeader(\"{header.Name}\",\"{_headerOverrides[header.Name]}\");"); } else { code.AppendLine($"request.AddHeader(\"{header.Name}\",\"{header.Value}\");"); } }
protected string GetNetScalerCookieInfo(HTTPHeaderItem httpHeaderItem) { string httpHeaderdata = httpHeaderItem.Value.ToString(); StringBuilder stringBuilder = new StringBuilder(); if (httpHeaderdata.Contains("NSC_")) { string[] cookies = httpHeaderdata.Split(';'); foreach (string cookie in cookies) { if (cookie.Contains("NSC_")) { stringBuilder.AppendLine("NetScaler Cookie: " + cookie.TrimStart()); stringBuilder.AppendLine(); stringBuilder.AppendLine(FormatCookie(cookie.TrimStart(), FiddlerApplication.Prefs.GetBoolPref("extensions.miHostNameLookup.enabled", false))); } } } return(stringBuilder.ToString()); }
public virtual bool BeforeRequest(Session session, Rule rule) { // Find the headers HTTPHeaderItem activeHeader = null; string value = String.Empty; foreach (HTTPHeaderItem header in session.oRequest.headers) { if (header.Name.Equals(this.Name, StringComparison.OrdinalIgnoreCase)) { value = header.Value; activeHeader = header; } } if (activeHeader != null) { // Run all the sub actions. value = this.Actions.Aggregate(value, (current, action) => action.Run(session, current)); if (String.IsNullOrEmpty(value)) { session.oRequest.headers.Remove(activeHeader); RuleLog.Current.AddRule(rule, session, String.Format("Header ({0}) Removed ({1})", this.Name, session.hostname)); } else { // Set the new value. activeHeader.Value = value; RuleLog.Current.AddRule(rule, session, String.Format("Header ({0}) Updated ({1})", this.Name, session.hostname)); } } return(true); }
private static bool IsHeaderExcluded(HTTPHeaderItem header) { return(ExcludedHttpHeaders.Any(excludedHttpHeader => header.Name == excludedHttpHeader)); }
public Header(HTTPHeaderItem item) : this(item.Name, item.Value) { }