2017-02-14 9 views
2

cefsharp에서 Auth와 함께 프록시를 사용하려고합니다. 이 코드를 시도했지만 인증없이 프록시로 작업 중입니다. 인증을 설정하려면 어떻게해야합니까? cefsharp 프록시 인증이 필요합니다.

Cef.UIThreadTaskFactory.StartNew(delegate 
        { 
         string ip = "IP"; 
         string port = "PORT"; 
         var rc = chrome.GetBrowser().GetHost().RequestContext; 
         var dict = new Dictionary<string, object>(); 
         dict.Add("mode", "fixed_servers"); 
         dict.Add("server", "" + ip + ":" + port + ""); 
         string error; 
         bool success = rc.SetPreference("proxy", dict, out error); 
        }); 

내가이 링크를 발견하지만 난 그것을

https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage.md#markdown-header-proxy-resolution 내가 beginer에있어 몇 가지 코드를 작성하시기 바랍니다하는 방법을 이해하지 않습니다.

+0

문서는 내가 예를 들어 당신을 도울 수 https://github.com/cefsharp/CefSharp/wiki/General-Usage#proxy-resolution입니다. 행운을 빌어 요! – amaitland

답변

3

저는 이번에 진짜 답변으로 돌아 왔습니다.

IRequestHandler를 사용하여 클래스를 구현하고 GetAuthCredentials()를 호출하면됩니다.

public class MyRequestHandler : IRequestHandler 
{ 

    bool IRequestHandler.GetAuthCredentials(IWebBrowser browserControl, IBrowser browser, IFrame frame, bool isProxy, string host, int port, string realm, string scheme, IAuthCallback callback) 
    { 

     if (isProxy == true) 
     {    
       callback.Continue("Username", "Password"); 

       return true; 
     } 

     return false; 

    } 
} 

callback.Continue()는 호출시 자격 증명을 적용합니다.

그런 다음 이미 가지고있는 코드에서 브라우저 인스턴스에 대한 처리기를 구현합니다.

Cef.UIThreadTaskFactory.StartNew(delegate 
{ 

     chrome.RequestHandler = new MyRequestHandler(); 

     string ip = "IP"; 
     string port = "PORT"; 
     var rc = chrome.GetBrowser().GetHost().RequestContext; 
     var dict = new Dictionary<string, object>(); 
     dict.Add("mode", "fixed_servers"); 
     dict.Add("server", "" + ip + ":" + port + ""); 
     string error; 
     bool success = rc.SetPreference("proxy", dict, out error); 
}); 
+0

안녕하세요, 나는이 작업을 수행 할 수 없습니다 공용 클래스 MyRequestHandler을 : IRequestHandler { 부울 IRequestHandler.GetAuthCredentials (에 IWebBrowser browserControl, IBrowser 브라우저, IFrame을 프레임, 부울 isProxy, 문자열 호스트, INT 포트, 문자열 영역, 문자열 방식 IAuthCallback (isProxy == true) { 콜백. 계속 ("사용자 이름", "암호"); return true; } false를 반환합니다. } } 나머지는 IRequestHandler를 구현하지 않고 어떻게 해결할 수 있습니까? – Samhakadas

+0

원하지 않는 내용을 제거하십시오. 여기 내 전체 MyRequestHandler가 있습니다. Pastebin - https://pastebin.com/J6F7kwir – Jomasdf