-
Notifications
You must be signed in to change notification settings - Fork 1
/
FiddlerCore.xml
6362 lines (6344 loc) · 314 KB
/
FiddlerCore.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0"?>
<doc>
<assembly>
<name>FiddlerCore</name>
</assembly>
<members>
<member name="T:Fiddler.WinINETCache">
<summary>
Wrapper for WinINET cache APIs.
</summary>
</member>
<member name="M:Fiddler.WinINETCache.ClearCookies">
<summary>
Clear all HTTP Cookies from the WinINET Cache
</summary>
</member>
<member name="M:Fiddler.WinINETCache.ClearFiles">
<summary>
Clear all files from the WinINET Cache
</summary>
</member>
<member name="M:Fiddler.WinINETCache.ClearCookiesForHost(System.String)">
<summary>
Delete all permanent WinINET cookies for sHost; won't clear memory-only session cookies. Supports hostnames with an optional leading wildcard, e.g. *example.com. NOTE: Will not work on VistaIE Protected Mode cookies.
</summary>
<param name="sHost">The hostname whose cookies should be cleared</param>
</member>
<member name="M:Fiddler.WinINETCache.ClearCacheItems(System.Boolean,System.Boolean)">
<summary>
Clear the Cache items. Note: May be synchronous, may be asynchronous.
</summary>
<param name="bClearFiles">TRUE if cache files should be cleared</param>
<param name="bClearCookies">TRUE if cookies should be cleared</param>
</member>
<member name="T:Fiddler.WinINETCache.INTERNET_CACHE_ENTRY_INFOA">
<summary>
For PInvoke: Contains information about an entry in the Internet cache
</summary>
</member>
<member name="T:Fiddler.WinINETProxyInfo">
<summary>
Wrapper for WinINET proxy configuration APIs
</summary>
</member>
<member name="F:Fiddler.WinINETProxyInfo._sHostsThatBypass">
<summary>
Hostnames of sites to bypass proxy. <local> is common.
</summary>
</member>
<member name="F:Fiddler.WinINETProxyInfo._bDirect">
<summary>
Allow direct connection to host
</summary>
</member>
<member name="F:Fiddler.WinINETProxyInfo._bAutoDetect">
<summary>
Attempt WPAD autoproxy detection
</summary>
</member>
<member name="F:Fiddler.WinINETProxyInfo._bAutoDetectWasUserSet">
<summary>
Ignore WinINET "no autoproxy unticks box" optimization
</summary>
</member>
<member name="F:Fiddler.WinINETProxyInfo._bUseConfigScript">
<summary>
Use user-supplied URL to get FindProxyForURL script
</summary>
</member>
<member name="F:Fiddler.WinINETProxyInfo._bProxiesSpecified">
<summary>
Use user-supplied manual/fixed proxy address list
</summary>
</member>
<member name="F:Fiddler.WinINETProxyInfo._sScriptURL">
<summary>
WPAD script url that may be used if _bUseScript true
</summary>
</member>
<member name="M:Fiddler.WinINETProxyInfo.CreateFromNamedConnection(System.String)">
<summary>
Gathers proxy information from a named connection.
</summary>
<param name="sConnectionName">Pass DefaultLAN to look for the "null" connection</param>
<returns>Proxy info, or null</returns>
</member>
<member name="M:Fiddler.WinINETProxyInfo.ToString">
<summary>
Get a string describing the proxy settings
</summary>
<returns>Returns a multi-line string representing the proxy settings</returns>
</member>
<member name="M:Fiddler.WinINETProxyInfo.CalculateProxyString">
<summary>
Calculate a string suitable for passing into WinINET APIs.
</summary>
<returns>Returns a string containing proxy information, or NULL. NB: I've seen WinINET blow up when passed String.Empty rather than null.
</returns>
</member>
<member name="M:Fiddler.WinINETProxyInfo.SetManualProxies(System.String)">
<summary>
Given a proxy string, we crack out the proxy gateways for each protocol
</summary>
<param name="sProxyString">e.g. HTTP=itgproxy:80;FTP=ftpprox:21;</param>
<returns>false on error</returns>
</member>
<member name="M:Fiddler.WinINETProxyInfo.GetFromWinINET(System.String)">
<summary>
Fills this WinINETProxyInfo instance with settings from specified WinINET connection.
</summary>
<param name="sConnectionName">Name of the connection. Pass NULL for LAN connection.</param>
<returns>TRUE if the settings were successfully retrieved.</returns>
</member>
<member name="M:Fiddler.WinINETProxyInfo.SetToWinINET(System.String)">
<summary>
Sets WinINET proxy settings for specified connection to those specified in this WinINETProxy instance.
</summary>
<param name="sConnectionName">Name of the connection. Pass NULL for LAN connection.</param>
</member>
<member name="P:Fiddler.WinINETProxyInfo.sHostsThatBypass">
<summary>
Semi-colon delimited list of hostnames that should bypass the fixed proxy
</summary>
</member>
<member name="P:Fiddler.WinINETProxyInfo.bUseManualProxies">
<summary>
TRUE if manually-specified proxy should be used.
</summary>
</member>
<member name="P:Fiddler.WinINETProxyInfo.bAllowDirect">
<summary>
TRUE if a direct HTTP connection may be made if AutoProxy/PAC is unreachable or corrupt
</summary>
</member>
<member name="P:Fiddler.WinINETProxyInfo.bBypassIntranetHosts">
<summary>
True if the proxy should be bypassed for dotless hostnames.
NOTE: Simply looks at the bypassList string to see if it contains a LOCAL rule.
</summary>
</member>
<member name="P:Fiddler.WinINETProxyInfo.sHttpProxy">
<summary>
String representing the endpoint of the proxy for HTTP-traffic, if configured
</summary>
</member>
<member name="P:Fiddler.WinINETProxyInfo.sHttpsProxy">
<summary>
String representing the endpoint of the proxy for HTTPS-traffic, if configured
</summary>
</member>
<member name="P:Fiddler.WinINETProxyInfo.sFtpProxy">
<summary>
String representing the endpoint of the proxy for FTP-traffic, if configured
</summary>
</member>
<member name="P:Fiddler.WinINETProxyInfo.sSocksProxy">
<summary>
String representing the endpoint of the proxy for SOCKS-traffic, if configured
</summary>
</member>
<member name="P:Fiddler.WinINETProxyInfo.bAutoDetect">
<summary>
Bool indicating whether this connection is set to autodetect the proxy
</summary>
</member>
<member name="P:Fiddler.WinINETProxyInfo.sPACScriptLocation">
<summary>
Returns a string pointing to the ProxyAutoConfig script, or null if there is no such URL or it is not enabled
</summary>
</member>
<member name="T:Fiddler.HTTPSUtilities">
<summary>
Provides simple utility functions common to both ClientHello and ServerHello parsing
</summary>
</member>
<member name="M:Fiddler.HTTPSUtilities.GetExtensionString(System.Byte[])">
<summary>
Gets a textual string from a TLS extension
</summary>
</member>
<member name="M:Fiddler.HTTPSUtilities.HTTPSVersionToString(System.Int32,System.Int32)">
<summary>
Converts a HTTPS version to a "Major.Minor (Friendly)" string
</summary>
</member>
<member name="T:Fiddler.HTTPSClientHello">
<summary>
The HTTPSClientHello class is used to parse the bytes of a HTTPS ClientHello message.
</summary>
</member>
<member name="F:Fiddler.HTTPSClientHello.dictTLSCipherSuites">
<summary>
Map cipher id numbers to names. See http://www.iana.org/assignments/tls-parameters/
</summary>
</member>
<member name="M:Fiddler.HTTPSClientHello.ParseClientHelloExtension(System.Int32,System.Byte[])">
<summary>
Parse a single extension using the list from http://tools.ietf.org/html/rfc6066
http://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xml
</summary>
<param name="iExtType"></param>
<param name="arrData"></param>
</member>
<member name="P:Fiddler.HTTPSClientHello.bALPNToSPDY">
<summary>
Did client use ALPN to go to SPDY?
</summary>
</member>
<member name="M:Fiddler.HTTPSServerHello.ParseServerHelloExtension(System.Int32,System.Byte[])">
<summary>
Parse a single extension using the list from http://tools.ietf.org/html/rfc6066
</summary>
<param name="iExtType"></param>
<param name="arrData"></param>
</member>
<member name="P:Fiddler.HTTPSServerHello.bNPNToSPDY">
<summary>
Did this ServerHello Handshake specify an upgrade to SPDY?
</summary>
</member>
<member name="T:Fiddler.Session">
<summary>
The Session object manages the complete HTTP session including the UI listitem, the ServerChatter, and the ClientChatter.
</summary>
</member>
<member name="F:Fiddler.Session.bTrySPNTokenObject">
<summary>
Should we try to use the SPNToken type?
Cached for performance reasons
</summary>
</member>
<member name="F:Fiddler.Session.__WebRequestForAuth">
<summary>
Sorta hacky, we may use a .NET WebRequest object to generate a valid NTLM/Kerberos response if the server
demands authentication and the Session is configured to automatically respond.
</summary>
</member>
<member name="F:Fiddler.Session.__oTunnel">
<summary>
Used if the Session is bound to a WebSocket or CONNECTTunnel
</summary>
</member>
<member name="M:Fiddler.Session.SetBitFlag(Fiddler.SessionFlags,System.Boolean)">
<summary>
Sets or unsets the specified SessionFlag(s)
</summary>
<param name="FlagsToSet">SessionFlags</param>
<param name="b">Desired set value</param>
</member>
<member name="M:Fiddler.Session.isFlagSet(Fiddler.SessionFlags)">
<summary>
Test the session's BitFlags
</summary>
<param name="FlagsToTest">One or more (OR'd) SessionFlags</param>
<returns>TRUE if specified flag(s) are set</returns>
</member>
<member name="M:Fiddler.Session.isAnyFlagSet(Fiddler.SessionFlags)">
<summary>
Test the session's BitFlags
</summary>
<param name="FlagsToTest">One or more (OR'd) SessionFlags</param>
<returns>TRUE if any of specified flag(s) are set</returns>
</member>
<member name="F:Fiddler.Session.bBufferResponse">
<summary>
Should response be buffered for tampering
</summary>
</member>
<member name="F:Fiddler.Session.Timers">
<summary>
Timers stored as this Session progresses
</summary>
</member>
<member name="F:Fiddler.Session.ViewItem">
<summary>
ListViewItem object associated with this session in the Session list.
</summary>
</member>
<member name="F:Fiddler.Session._bAllowClientPipeReuse">
<summary>
Field is set to False if socket is poisoned due to HTTP errors.
</summary>
</member>
<member name="F:Fiddler.Session.oResponse">
<summary>
Object representing the HTTP Response.
</summary>
</member>
<member name="F:Fiddler.Session.oRequest">
<summary>
Object representing the HTTP Request.
</summary>
</member>
<member name="F:Fiddler.Session.oFlags">
<summary>
Fiddler-internal flags set on the session.
</summary>
</member>
<member name="F:Fiddler.Session.requestBodyBytes">
<summary>
Contains the bytes of the request body.
</summary>
</member>
<member name="F:Fiddler.Session.responseBodyBytes">
<summary>
Contains the bytes of the response body.
</summary>
</member>
<member name="F:Fiddler.Session.m_clientIP">
<summary>
IP Address of the client for this session.
</summary>
</member>
<member name="F:Fiddler.Session.m_clientPort">
<summary>
Client port attached to Fiddler.
</summary>
</member>
<member name="F:Fiddler.Session.m_hostIP">
<summary>
IP Address of the server for this session.
</summary>
</member>
<member name="F:Fiddler.Session.oSyncEvent">
<summary>
Event object used for pausing and resuming the thread servicing this session
</summary>
</member>
<member name="M:Fiddler.Session.HTTPMethodIs(System.String)">
<summary>
Returns TRUE if the Session's HTTP Method is available and matches the target method.
</summary>
<param name="sTestFor">The target HTTP Method being compared.</param>
<returns>true, if the method is specified and matches sTestFor (case-insensitive); otherwise false.</returns>
</member>
<member name="M:Fiddler.Session.HostnameIs(System.String)">
<summary>
Returns TRUE if the Session's target hostname (no port) matches sTestHost (case-insensitively).
</summary>
<param name="sTestHost">The host to which this session's host should be compared.</param>
<returns>True if this session is targeted to the specified host.</returns>
</member>
<member name="M:Fiddler.Session._MakeSafeFilename(System.String)">
<summary>
Replaces any characters in a filename that are unsafe with safe equivalents, and trim to 160 characters.
</summary>
<param name="sFilename"></param>
<returns></returns>
</member>
<member name="M:Fiddler.Session.FireContinueTransaction(Fiddler.Session,Fiddler.Session,Fiddler.ContinueTransactionReason)">
<summary>
Notify extensions if this session naturally led to another (e.g. due to redirect chasing or Automatic Authentication)
</summary>
<param name="oOrig">The original session</param>
<param name="oNew">The new session created</param>
</member>
<member name="M:Fiddler.Session.ToHTMLFragment(System.Boolean)">
<summary>
Returns HTML representing the session. Call Utilities.StringToCF_HTML on the result of this function before placing it on the clipboard.
</summary>
<param name="HeadersOnly">TRUE if only the headers should be copied.</param>
<returns>A HTML-formatted fragment representing the current session.</returns>
</member>
<member name="M:Fiddler.Session.ToString(System.Boolean)">
<summary>
Store this session's request and response to a string.
</summary>
<param name="HeadersOnly">If true, return only the request and response headers</param>
<returns>String representing this session</returns>
</member>
<member name="M:Fiddler.Session.ToString">
<summary>
Store this session's request and response to a string.
</summary>
<returns>A string containing the content of the request and response.</returns>
</member>
<member name="M:Fiddler.Session.ThreadPause">
<summary>
This private method pauses the Session's thread to allow breakpoint debugging
</summary>
</member>
<member name="M:Fiddler.Session.ThreadResume">
<summary>
This method resumes the Session's thread in response to "Continue" commands from the UI
</summary>
</member>
<member name="M:Fiddler.Session.CreateAndExecute(System.Object)">
<summary>
Called by an AcceptConnection-spawned background thread, create a new session object from a client socket and execute the session
</summary>
<param name="oParams">Parameter object defining client socket and endpoint's HTTPS certificate, if present</param>
</member>
<member name="M:Fiddler.Session.AcceptHTTPSRequest(System.Security.Cryptography.X509Certificates.X509Certificate2)">
<summary>
Call this method to AuthenticateAsServer on the client pipe. If configured, the pipe will first sniff the request
for the SubjectCN expected, which might be advertised in the TLS ServerNameIndicator extension.
</summary>
<param name="oCert">The default certificate to use</param>
<returns>TRUE if a HTTPS handshake was achieved; FALSE for any exceptions or other errors.</returns>
</member>
<member name="M:Fiddler.Session.COMETPeek">
<summary>
Call this function while in the "reading response" state to update the responseBodyBytes array with
the partially read response.
</summary>
<returns>TRUE if the peek succeeded; FALSE if not in the ReadingResponse state</returns>
</member>
<member name="M:Fiddler.Session.PoisonServerPipe">
<summary>
Prevents the server pipe from this session from being pooled for reuse
</summary>
</member>
<member name="M:Fiddler.Session.PoisonClientPipe">
<summary>
Ensures that, after the response is complete, the client socket is closed and not reused.
Does NOT (and must not) close the pipe.
</summary>
</member>
<member name="M:Fiddler.Session.CloseSessionPipes(System.Boolean)">
<summary>
Immediately close client and server sockets. Call in the event of errors-- doesn't queue server pipes for future reuse.
</summary>
<param name="bNullThemToo"></param>
</member>
<member name="M:Fiddler.Session.Abort">
<summary>
Closes both client and server pipes and moves state to Aborted; unpauses thread if paused.
</summary>
</member>
<member name="M:Fiddler.Session.SaveResponseBody">
<summary>
Save HTTP response body to Fiddler Captures folder. You likely want to call utilDecodeResponse first.
</summary>
<returns>True if the response body was successfully saved</returns>
</member>
<member name="M:Fiddler.Session.SaveResponseBody(System.String)">
<summary>
Save HTTP response body to specified location. You likely want to call utilDecodeResponse first.
</summary>
<param name="sFilename">The name of the file to which the response body should be saved.</param>
<returns>True if the file was successfully written.</returns>
</member>
<member name="M:Fiddler.Session.SaveRequestBody(System.String)">
<summary>
Save the request body to a file. You likely want to call utilDecodeRequest first.
</summary>
<param name="sFilename">The name of the file to which the request body should be saved.</param>
<returns>True if the file was successfully written.</returns>
</member>
<member name="M:Fiddler.Session.SaveSession(System.String,System.Boolean)">
<summary>
Save the request and response to a single file.
</summary>
<param name="sFilename">The filename to which the session should be saved.</param>
<param name="bHeadersOnly">TRUE if only the headers should be written.</param>
</member>
<member name="M:Fiddler.Session.SaveRequest(System.String,System.Boolean)">
<summary>
Save the request to a file; the headers' Request Line will not contain the scheme or host
</summary>
<param name="sFilename">The name of the file to which the request should be saved.</param>
<param name="bHeadersOnly">TRUE to save only the headers</param>
</member>
<member name="M:Fiddler.Session.SaveRequest(System.String,System.Boolean,System.Boolean)">
<summary>
Save the request to a file
</summary>
<param name="sFilename">The name of the file to which the request should be saved.</param>
<param name="bHeadersOnly">TRUE to save only the headers.</param>
<param name="bIncludeSchemeAndHostInPath">TRUE to include the Scheme and Host in the Request Line.</param>
</member>
<member name="M:Fiddler.Session.LoadMetadata(System.IO.Stream)">
<summary>
Read metadata about this session from a stream. NB: Closes the Stream when done.
</summary>
<param name="strmMetadata">The stream of XML text from which session metadata will be loaded.</param>
<returns>True if the Metadata was successfully loaded; False if any exceptions were trapped.</returns>
</member>
<member name="M:Fiddler.Session.SaveMetadata(System.String)">
<summary>
Writes this session's metadata to a file.
</summary>
<param name="sFilename">The name of the file to which the metadata should be saved in XML format.</param>
<returns>True if the file was successfully written.</returns>
</member>
<member name="M:Fiddler.Session.SaveResponse(System.String,System.Boolean)">
<summary>
Saves the response (headers and body) to a file
</summary>
<param name="sFilename">The File to write</param>
<param name="bHeadersOnly">TRUE if only heaers should be written</param>
</member>
<member name="M:Fiddler.Session.WriteMetadataToStream(System.IO.Stream)">
<summary>
Write the metadata about this session to a stream. The Stream is left open!
</summary>
<param name="strmMetadata">The Stream to write to</param>
</member>
<member name="M:Fiddler.Session.WriteRequestToStream(System.Boolean,System.Boolean,System.IO.Stream)">
<summary>
Write the session's Request to the specified stream
</summary>
<param name="bHeadersOnly">TRUE if only the headers should be be written</param>
<param name="bIncludeProtocolAndHostWithPath">TRUE if the Scheme and Host should be written in the Request Line</param>
<param name="oFS">The Stream to which the request should be written</param>
<returns>True if the request was written to the stream. False if the request headers do not exist. Throws on other stream errors.</returns>
</member>
<member name="M:Fiddler.Session.WriteRequestToStream(System.Boolean,System.Boolean,System.Boolean,System.IO.Stream)">
<summary>
Write the session's Request to the specified stream
</summary>
<param name="bHeadersOnly">TRUE if only the headers should be be written</param>
<param name="bIncludeProtocolAndHostWithPath">TRUE if the Scheme and Host should be written in the Request Line</param>
<param name="bEncodeIfBinary">TRUE if binary bodies should be encoded in base64 for text-safe transport</param>
<param name="oFS">The Stream to which the request should be written</param>
<returns>True if the request was written to the stream. False if the request headers do not exist. Throws on other stream errors.</returns>
</member>
<member name="M:Fiddler.Session.WriteResponseToStream(System.IO.Stream,System.Boolean)">
<summary>
Write the session's Response to the specified stream
</summary>
<param name="oFS">The stream to which the response should be written</param>
<param name="bHeadersOnly">TRUE if only the headers should be written</param>
<returns>TRUE if the response was written to the stream. False if the response headers do not exist. Throws on other stream errors.</returns>
</member>
<member name="M:Fiddler.Session.WriteToStream(System.IO.Stream,System.Boolean)">
<summary>
Write the session to the specified stream
</summary>
<param name="oFS">The stream to which the session should be written</param>
<param name="bHeadersOnly">TRUE if only the request and response headers should be written</param>
<returns>False on any exceptions; True otherwise</returns>
</member>
<member name="M:Fiddler.Session.LoadRequestBodyFromFile(System.String)">
<summary>
Replace HTTP request headers and body using the specified file.
</summary>
<param name="sFilename">The file containing the request</param>
<returns>True if the file was successfully loaded as the request body</returns>
</member>
<member name="M:Fiddler.Session.LoadResponseFromStream(System.IO.Stream,System.String)">
<summary>
Replace HTTP response headers and body using the specified stream.
</summary>
<param name="sFilename">The stream containing the response.</param>
<returns>True if the Stream was successfully loaded.</returns>
</member>
<member name="M:Fiddler.Session.LoadResponseFromFile(System.String)">
<summary>
Replace HTTP response headers and body using the specified file.
</summary>
<param name="sFilename">The file containing the response.</param>
<returns>True if the file was successfully loaded.</returns>
</member>
<member name="M:Fiddler.Session.GetRequestBodyAsString">
<summary>
Return a string generated from the request body, decoding it and converting from a codepage if needed. Throws on errors.
</summary>
<returns>A string containing the request body.</returns>
</member>
<member name="M:Fiddler.Session.GetResponseBodyAsString">
<summary>
Return a string generated from the response body, decoding it and converting from a codepage if needed. Throws on errors.
</summary>
<returns>A string containing the response body.</returns>
</member>
<member name="M:Fiddler.Session.GetRequestBodyEncoding">
<summary>
Find the text encoding of the request
</summary>
<returns>Returns the Encoding of the requestBodyBytes</returns>
</member>
<member name="M:Fiddler.Session.GetResponseBodyEncoding">
<summary>
Find the text encoding of the response
</summary>
<returns>The Encoding of the responseBodyBytes</returns>
</member>
<member name="M:Fiddler.Session.uriContains(System.String)">
<summary>
Returns true if the absolute request URI contains the specified string. Case-insensitive.
</summary>
<param name="sLookfor">Case-insensitive string to find</param>
<returns>TRUE if the URI contains the string</returns>
</member>
<member name="M:Fiddler.Session.utilDecodeResponse">
<summary>
Removes chunking and HTTP Compression from the Response. Adds or updates Content-Length header.
</summary>
<returns>Returns TRUE if the response was decoded; returns FALSE on failure, or if response didn't have headers that showed encoding.</returns>
</member>
<member name="M:Fiddler.Session.utilDecodeRequest">
<summary>
Removes chunking and HTTP Compression from the Request. Adds or updates Content-Length header.
</summary>
<returns>Returns TRUE if the request was decoded; returns FALSE on failure, or if request didn't have headers that showed encoding.</returns>
</member>
<member name="M:Fiddler.Session.utilGZIPRequest">
<summary>
Use GZIP to compress the request body. Throws exceptions to caller.
</summary>
<returns>TRUE if compression succeeded</returns>
</member>
<member name="M:Fiddler.Session.utilGZIPResponse">
<summary>
Use GZIP to compress the response body. Throws exceptions to caller.
</summary>
<returns>TRUE if compression succeeded</returns>
</member>
<member name="M:Fiddler.Session.utilDeflateResponse">
<summary>
Use DEFLATE to compress the response body. Throws exceptions to caller.
</summary>
<returns>TRUE if compression succeeded</returns>
</member>
<member name="M:Fiddler.Session.utilBZIP2Response">
<summary>
Use BZIP2 to compress the response body. Throws exceptions to caller.
</summary>
<returns>TRUE if compression succeeded</returns>
</member>
<member name="M:Fiddler.Session.utilChunkResponse(System.Int32)">
<summary>
Introduces HTTP Chunked encoding on the response body
</summary>
<param name="iSuggestedChunkCount">The number of chunks to try to create</param>
<returns>TRUE if the chunking could be performed.</returns>
</member>
<member name="M:Fiddler.Session.utilReplaceInRequest(System.String,System.String)">
<summary>
Perform a string replacement on the request body. Adjusts the Content-Length header if needed.
</summary>
<param name="sSearchFor">The case-sensitive string to search for.</param>
<param name="sReplaceWith">The text to replace.</param>
<returns>TRUE if one or more replacements occurred.</returns>
</member>
<member name="M:Fiddler.Session.utilCreateResponseAndBypassServer">
<summary>
Call inside OnBeforeRequest to create a response object and bypass the server.
</summary>
</member>
<member name="M:Fiddler.Session.utilReplaceRegexInResponse(System.String,System.String)">
<summary>
Perform a regex-based string replacement on the response body. Adjusts the Content-Length header if needed.
</summary>
<param name="sSearchForRegEx">The regular expression used to search the body. Specify RegEx Options via leading Inline Flags, e.g. (?im) for case-Insensitive Multi-line.</param>
<param name="sReplaceWithExpression">The text or expression used to replace</param>
<returns>TRUE if replacements occured</returns>
</member>
<member name="M:Fiddler.Session.utilReplaceInResponse(System.String,System.String)">
<summary>
Perform a string replacement on the response body (potentially multiple times). Adjust the Content-Length header if needed.
</summary>
<param name="sSearchFor">String to find (case-sensitive)</param>
<param name="sReplaceWith">String to use to replace</param>
<returns>TRUE if replacements occurred</returns>
</member>
<member name="M:Fiddler.Session.utilReplaceOnceInResponse(System.String,System.String,System.Boolean)">
<summary>
Perform a one-time string replacement on the response body. Adjust the Content-Length header if needed.
</summary>
<param name="sSearchFor">String to find (case-sensitive)</param>
<param name="sReplaceWith">String to use to replace</param>
<param name="bCaseSensitive">TRUE for Case-Sensitive</param>
<returns>TRUE if a replacement occurred</returns>
</member>
<member name="M:Fiddler.Session.utilSetRequestBody(System.String)">
<summary>
Replaces the request body with sString as UTF8. Sets Content-Length header and removes Transfer-Encoding/Content-Encoding.
</summary>
<param name="sString">The desired request Body as a string</param>
</member>
<member name="M:Fiddler.Session.utilSetResponseBody(System.String)">
<summary>
Replaces the response body with sString. Sets Content-Length header and removes Transfer-Encoding/Content-Encoding
</summary>
<param name="sString">The desired response Body as a string</param>
</member>
<member name="M:Fiddler.Session.utilPrependToResponseBody(System.String)">
<summary>
Add a string to the top of the response body, updating Content-Length. (Call utilDecodeResponse first!)
</summary>
<param name="sString">The string to prepend</param>
</member>
<member name="M:Fiddler.Session.utilFindInRequest(System.String,System.Boolean)">
<summary>
Find a string in the request body. Return its index, or -1.
</summary>
<param name="sSearchFor">Term to search for</param>
<param name="bCaseSensitive">Require case-sensitive match?</param>
<returns>Location of sSearchFor,or -1</returns>
</member>
<member name="M:Fiddler.Session.utilFindInResponse(System.String,System.Boolean)">
<summary>
Find a string in the response body. Return its index, or -1.
</summary>
<param name="sSearchFor">Term to search for</param>
<param name="bCaseSensitive">Require case-sensitive match?</param>
<returns>Location of sSearchFor,or -1</returns>
</member>
<member name="M:Fiddler.Session.ResetSessionCounter">
<summary>
Reset the SessionID counter to 0. This method can lead to confusing UI, so use sparingly.
</summary>
</member>
<member name="M:Fiddler.Session.#ctor(System.Byte[],System.Byte[])">
<summary>
Create a session object from two byte[] representing request and response.
</summary>
<param name="arrRequest">The client data bytes</param>
<param name="arrResponse">The server data bytes</param>
</member>
<member name="M:Fiddler.Session.#ctor(Fiddler.SessionData)">
<summary>
Create a Session object from a (serializable) SessionData object
</summary>
<param name="oSD"></param>
</member>
<member name="M:Fiddler.Session.#ctor(System.Byte[],System.Byte[],Fiddler.SessionFlags)">
<summary>
Create a session object from two byte[] representing request and response. This is used when loading a Session Archive Zip.
</summary>
<param name="arrRequest">The client data bytes</param>
<param name="arrResponse">The server data bytes</param>
<param name="oSF">SessionFlags for this session</param>
</member>
<member name="M:Fiddler.Session.#ctor(Fiddler.ClientPipe,Fiddler.ServerPipe)">
<summary>
Creates a new session and attaches it to the pipes passed as arguments
</summary>
<param name="clientPipe">The client pipe from which the request is read and to which the response is written.</param>
<param name="serverPipe">The server pipe to which the request is sent and from which the response is read. May be null.</param>
</member>
<member name="M:Fiddler.Session.#ctor(Fiddler.HTTPRequestHeaders,System.Byte[])">
<summary>
Initialize a new session from a given request headers and body request builder data. Note: No Session ID is assigned here.
</summary>
<param name="oRequestHeaders">NB: If you're copying an existing request, use oRequestHeaders.Clone()</param>
<param name="arrRequestBody">The bytes of the request's body</param>
</member>
<member name="M:Fiddler.Session.Execute(System.Object)">
<summary>
Called when the session is ready to begin processing. Eats exceptions to prevent unhandled exceptions on background threads from killing the application.
</summary>
<param name="objThreadState">Unused parameter (required by ThreadPool)</param>
</member>
<member name="M:Fiddler.Session.InnerExecute">
<summary>
InnerExecute() implements Fiddler's HTTP Pipeline
</summary>
</member>
<member name="M:Fiddler.Session._handledAsAutomaticAuth">
<summary>
If the response demands credentials and the Session is configured to have Fiddler provide those
credentials, try to do so now.
</summary>
<returns>TRUE if Fiddler has generated a response to an Auth challenge; FALSE otherwise.</returns>
</member>
<member name="M:Fiddler.Session._PerformInnerAuth">
<summary>
This method will perform obtain authentication credentials from System.NET using a reflection trick to grab the internal value.
It's needed to cope with CBT.
This MUST live within its own non-inlined method such that when it's run on an outdated version of the .NET Framework, the outdated
version of the target object triggers a TypeLoadException in such a way that the caller can catch it and warn the user without
killing Fiddler.exe.
</summary>
<returns></returns>
</member>
<member name="M:Fiddler.Session._GetSPNForUri(System.Uri)">
<summary>
Returns a Kerberos-usable SPN for the target
http://dev.chromium.org/developers/design-documents/http-authentication
"HttpAuthHandlerNegotiate::CreateSPN"
http://blog.michelbarneveld.nl/michel/archive/2009/11/14/the-reason-why-kb911149-and-kb908209-are-not-the-soluton.aspx
</summary>
<param name="uriTarget"></param>
<returns></returns>
</member>
<member name="M:Fiddler.Session.GetRedirectTargetURL">
<summary>
Returns the fully-qualified URL to which this Session's response points, or null.
</summary>
<returns>null, or Target URL. Note, you may want to call Utilities.TrimAfter(sTarget, '#');</returns>
</member>
<member name="M:Fiddler.Session.GetRedirectTargetURL(System.String,System.String)">
<summary>
Gets a redirect-target from a base URI and a Location header
</summary>
<param name="sBase"></param>
<param name="sLocation"></param>
<returns>null, or Target URL. Note, you may want to call Utilities.TrimAfter(sTarget, '#');</returns>
</member>
<member name="M:Fiddler.Session.isRedirectableURI(System.String,System.String,System.String@)">
<summary>
Fiddler can only auto-follow redirects to HTTP/HTTPS/FTP.
</summary>
<param name="sBase">The BASE URL to which a relative redirection should be applied</param>
<param name="sLocation">Response "Location" header</param>
<returns>TRUE if the auto-redirect target is allowed</returns>
</member>
<member name="M:Fiddler.Session._handledAsAutomaticRedirect">
<summary>
Handles a Response's Redirect if the Session is configured to do so.
</summary>
<returns>TRUE if a redirect was handled, FALSE otherwise</returns>
</member>
<member name="M:Fiddler.Session.ExecuteHTTPLintOnResponse">
<summary>
Check for common mistakes in HTTP Responses and notify the user if they are found. Called only if Linting is enabled.
</summary>
</member>
<member name="M:Fiddler.Session._AssignID">
<summary>
Assign a Session ID. Called by ClientChatter when headers are available
</summary>
</member>
<member name="M:Fiddler.Session._executeObtainRequest">
<summary>
Called only by InnerExecute, this method reads a request from the client and performs tampering/manipulation on it.
</summary>
<returns>TRUE if there's a Request object and we should continue processing. FALSE if reading the request failed
*OR* if script or an extension changed the session's State to DONE or ABORTED.
</returns>
</member>
<member name="M:Fiddler.Session._isResponseMultiStageAuthChallenge">
<summary>
Returns TRUE if response is a NTLM or NEGO challenge
</summary>
<returns>True for HTTP/401,407 with NEGO or NTLM demand</returns>
</member>
<member name="M:Fiddler.Session._isResponseAuthChallenge">
<summary>
Returns TRUE if response is a Digest, NTLM, or Nego challenge
</summary>
<returns>True for HTTP/401,407 with Digest, NEGO, NTLM demand</returns>
</member>
<member name="M:Fiddler.Session._replaceVirtualHostnames">
<summary>
Replace the "ipv*.fiddler "fake" hostnames with the IP-literal equvalents.
</summary>
</member>
<member name="M:Fiddler.Session._isDirectRequestToFiddler">
<summary>
Determines if request host is pointing directly at Fiddler.
</summary>
<returns></returns>
</member>
<member name="M:Fiddler.Session._returnEchoServiceResponse">
<summary>
Echo the client's request back as a HTTP Response, encoding to prevent XSS.
</summary>
</member>
<member name="M:Fiddler.Session._returnPACFileResponse">
<summary>
Send a Proxy Configuration script back to the client.
</summary>
</member>
<member name="M:Fiddler.Session._returnUpstreamPACFileResponse">
<summary>
Send a Proxy Configuration script back to WinHTTP, so that Fiddler can use an upstream proxy specified
by a script on a fileshare. (WinHTTP only allows HTTP/HTTPS-hosted script files)
</summary>
</member>
<member name="M:Fiddler.Session._returnRootCert(Fiddler.Session)">
<summary>
Send the Fiddler Root certificate back to the client
</summary>
</member>
<member name="M:Fiddler.Session._ReturnSelfGeneratedCONNECTTunnel(System.String)">
<summary>
This method indicates to the client that a secure tunnel was created,
without actually talking to an upstream server.
If Fiddler's AutoResponder is enabled, and that autoresponder denies passthrough,
then Fiddler itself will always indicate "200 Connection Established" and wait for
another request from the client. That subsequent request can then potentially be
handled by the AutoResponder engine.
BUG BUG: This occurs even if Fiddler isn't configured for HTTPS Decryption
</summary>
<param name="sHostname">The hostname to use in the Certificate returned to the client</param>
</member>
<member name="M:Fiddler.Session._isNTLMType2">
<summary>
This method adds a Proxy-Support: Session-Based-Authentication header and indicates whether the response is Nego:Type2.
</summary>
<returns>Returns TRUE if server returned a credible Type2 NTLM Message</returns>
</member>
<member name="M:Fiddler.Session._MayReuseMyClientPipe">
<summary>
This helper evaluates the conditions for client socket reuse.
</summary>
<returns></returns>
</member>
<member name="M:Fiddler.Session.ReturnResponse(System.Boolean)">
<summary>
Sends the Response that Fiddler received from the server back to the client socket.
</summary>
<param name="bForceClientServerPipeAffinity">Should the client and server pipes be tightly-bound together?</param>
<returns>True, if the response was successfully sent to the client</returns>
</member>
<member name="M:Fiddler.Session._createNextSession(System.Boolean)">
<summary>
Sets up the next Session on these pipes, binding this Session's pipes to that new Session, as appropriate. When this method is called,
the nextSession variable is populated with the new Session, and that object is executed at the appropriate time.
</summary>
<param name="bForceClientServerPipeAffinity">TRUE if both the client and server pipes should be bound regardless of the serverPipe's ReusePolicy</param>
</member>
<member name="M:Fiddler.Session.FinishUISession(System.Boolean)">
<summary>
Refresh the UI elements for the session.
</summary>
<param name="bSynchronous">Use TRUE to call Invoke, use FALSE to call BeginInvoke.</param>
</member>
<member name="P:Fiddler.Session.BitFlags">
<summary>
Bitflags of commonly-queried session attributes
</summary>
</member>
<member name="P:Fiddler.Session.TunnelIsOpen">
<summary>
If this session is a Tunnel, and the tunnel's IsOpen property is TRUE, returns TRUE. Otherwise returns FALSE.
</summary>
</member>
<member name="P:Fiddler.Session.TunnelIngressByteCount">
<summary>
If this session is a Tunnel, returns number of bytes sent from the Server to the Client
</summary>
</member>
<member name="P:Fiddler.Session.TunnelEgressByteCount">
<summary>
If this session is a Tunnel, returns number of bytes sent from the Client to the Server
</summary>
</member>
<member name="P:Fiddler.Session.isTunnel">
<summary>
Returns True if this is a HTTP CONNECT tunnel.
</summary>
</member>
<member name="P:Fiddler.Session.Tag">
<summary>
A common use for the Tag property is to store data that is closely associated with the Session.
It is NOT marshalled during drag/drop and is NOT serialized to a SAZ file.
</summary>
</member>
<member name="E:Fiddler.Session.OnStateChanged">
<summary>
This event fires at any time the session's State changes. Use with caution due to the potential for performance impact.
</summary>
</member>
<member name="E:Fiddler.Session.OnContinueTransaction">
<summary>
This event fires if this Session automatically yields a new one, for instance, if Fiddler is configured to automatically
follow redirects or perform multi-leg authentication (X-AutoAuth).
</summary>
</member>
<member name="P:Fiddler.Session.RequestBody">
<summary>
Gets or Sets the HTTP Request body bytes.
Setter adjusts Content-Length header, and removes Transfer-Encoding and Content-Encoding headers.
Setter DOES NOT CLONE the passsed array.
Setter will throw if the Request object does not exist for some reason.
Use utilSetRequestBody(sStr) to ensure proper character encoding if you need to use a string.
</summary>
</member>
<member name="P:Fiddler.Session.ResponseBody">
<summary>
Gets or Sets the HTTP Response body bytes.
Setter adjusts Content-Length header, and removes Transfer-Encoding and Content-Encoding headers.
Setter DOES NOT CLONE the passsed array.
Setter will throw if the Response object has not yet been created. (See utilCreateResponseAndBypassServer)
Use utilSetResponseBody(sStr) to ensure proper character encoding if you need to use a string.
</summary>
</member>
<member name="P:Fiddler.Session.isHTTPS">
<summary>
When true, this session was conducted using the HTTPS protocol.
</summary>
</member>
<member name="P:Fiddler.Session.isFTP">
<summary>
When true, this session was conducted using the FTP protocol.
</summary>
</member>
<member name="P:Fiddler.Session.LocalProcessID">
<summary>
Get the process ID of the application which made this request, or 0 if it cannot be determined.
</summary>
</member>
<member name="P:Fiddler.Session.SuggestedFilename">
<summary>
Gets a path-less filename suitable for saving the Response entity. Uses Content-Disposition if available.
</summary>
</member>
<member name="P:Fiddler.Session.bypassGateway">
<summary>
Set to true in OnBeforeRequest if this request should bypass the gateway
</summary>