WebBrowser 컨트롤을 안전한 웹 사이트로 이동하고 프로그래밍 방식으로 자격 증명을 입력하고 탐색하는 C# .NET 4.0 응용 프로그램을 작성하고 있습니다. 특정 페이지로 이동합니다. 이 같은 단일 버튼을 클릭, 어떤 결과 인 HTTPS 요청 및 응답을 캡처 할 :C# 응용 프로그램에서 FiddlerCore를 사용하여 응용 프로그램 자체에서 발생하는 단일 HTTPS 요청 및 응답을 캡처합니다.
NavigateControlToWebPage("https://fancyDancySite.com/fancyPage");
IHTMLElement btn = doc.getElementById("fancyDancyButton");
StartCapturingMyOwnHTTPSStuffWithFiddlerCore();
btn.click();
StopTheCapturing();
나는 웹 예제의 수에 따라이 덤비는 한을하고,을 사용하여에 FiddlerCore 용 SampleApp. StartCapturing 메서드가 수행해야하는 작업을 수행하는 방법을 이해할 수 없습니다. 내 코드는 현재이 코드이지만 성공하지 못합니다.
WebProxy myProxy = new WebProxy();
Uri newUri = new Uri("https://localhost:8080");
myProxy.Address = newUri;
if (!Fiddler.CertMaker.rootCertExists())
{
if (!Fiddler.CertMaker.createRootCert())
{
throw new Exception("Unable to create cert for FiddlerCore.");
}
}
if (!Fiddler.CertMaker.rootCertIsTrusted())
{
if (!Fiddler.CertMaker.trustRootCert())
{
throw new Exception("Unable to install FiddlerCore's cert.");
}
}
Fiddler.FiddlerApplication.Startup(8080, Fiddler.FiddlerCoreStartupFlags.DecryptSSL);
Fiddler.FiddlerApplication.AfterSessionComplete += Fiddler_AfterSessionComplete;
ETA : 외부 https 사이트에 액세스하려고 시도하고 있습니다.
ETA : 웹 브라우저 컨트롤이 일반적인 웹 사이트 대신 "탐색이 취소되었습니다"페이지를 가져 오기 때문에 약간의 효과가 있습니다. 하지만 그건 내가 :) 원하는
ETA 효과되지 않습니다 :이 경우에는 적합하지 않다 생각 SetProxyInProcess을 제거
ETA :
public void StartCapturingMyOwnHTTPSStuffWithFiddlerCore()
{
InstallCertificate();
FiddlerApplication.Startup(0, FiddlerCoreStartupFlags.Default);
FiddlerApplication.AfterSessionComplete += Fiddler_AfterSessionComplete;
}
이 다음과 같이 나의 현재 StartCapturing의 방법은 작동하지만, 내가 & ~RegisterAsSystemProxy
을 추가하면 작동이 멈 춥니 다.
감사합니다. Eric. 'Default & ~ RegisterAsSystemProxy' 플래그를 지정하면'Fiddler_AfterSessionComplete' 이벤트가 실행되지 않습니다. 응용 프로그램 내에서 요청한 HTTPS 세션을 가져 오려고합니다. 나는 결코'SetProxyInProcess'가 작동하지 못하게했다. 어떻게해야합니까? 내가 온라인에서 찾은 사례는 저에게 효과가 없었습니다. (편집 : "StopCapture"에 관해서는, 실제 소스 코드 내에서 타이밍이 맞았다. 단지 네 줄짜리 예제였다.) – WizzleWuzzle
어떻게 구체적으로'SetProxyInProcess'를 호출 했습니까? 예를 들면 다음과 같이 호출되어야합니다. 'Fiddler.URLMonInterop.SetProxyInProcess ("127.0.0.1:7777", "<-loopback>");'프록시가 포트'7777'에서 실행중인 경우. – EricLaw
"프록시가 포트 7777에서 실행중인 경우"... 어떤 프록시가 "사용자"프록시의 의미인지 확실하지 않습니까? 응용 프로그램 자체에서 생성하는 HTTPS 트래픽 만 응용 프로그램 내에서 캡처하려면 어떤 단계를 수행해야하는지 명확하지 않습니다. – WizzleWuzzle