2017-02-14 6 views
2

Ich versuche Proxy mit Auth auf cefsharp verwenden ich diesen Code versucht, und es funktioniert mit Proxy ohne Auth nur was soll ich Auth einstellen tun.cefsharp Proxy-Authentifizierung erforderlich

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); 
        }); 

fand ich diesen Link, aber ich verstehe nicht, wie es ich bin beginer

https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage.md#markdown-header-proxy-resolution bitte tun einige Code schreiben.

+0

Die Dokumentation ist https://github.com/cefsharp/CefSharp/wiki/General-Usage#proxy-resolution ich nicht, dass Sie mit einem Beispiel helfen können. Viel Glück! – amaitland

Antwort

3

Ich bin diesmal mit einer richtigen Antwort zurück.

Was Sie tun müssen, ist, implementieren Sie Ihre eigene Klasse mit IRequestHandler und rufen Sie die 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; 

    } 
} 

Die Callback.Continue() wird die Anmeldeinformationen für Sie anwenden, wenn sie aufgerufen werden.

Anschließend implementieren Sie den Handler zu Ihrer Browser-Instanz in dem Code, den Sie bereits haben.

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

Hallo, ich kann das nicht tun: public class MyRequestHandler: IRequestHandler { Bool IRequestHandler.GetAuthCredentials (IWebBrowser browserControl, IBrowser Browser, IFrame Rahmen, bool isProxy, string Host, int port, string Reich, string Schema, IAuthCallback Rückruf) { if (isProxy == true) { callback.Continue ("Benutzername", "Passwort"); Rückkehr wahr; } Rückgabe false; } } ohne Implementierung Rest aus IRequestHandler Wie beheben Sie das? – Samhakadas

+0

Entfernen Sie einfach die Sachen, die Sie nicht wollen. Hier ist mein gesamter MyRequestHandler. Pastebin - https://pastebin.com/J6F7kwir – Jomasdf

Verwandte Themen