CefSharp загрузить страницу с помощью браузера

Мне нужно добавить веб-браузер в Wpf-приложение, я попробовал использовать браузер из набора инструментов, но получил некоторые проблемы и перешел к CefSharp.

public MainWindow()
{
 InitializeComponent();
 BrowserSettings settings = new BrowserSettings();
 Cef.Initialize(new CefSettings());           
CefSharp.Wpf.ChromiumWebBrowser webBrowser = new CefSharp.Wpf.ChromiumWebBrowser();
  licence_grid.Children.Add(webBrowser);
  webBrowser.Address = "http://myurlToLoad the page";
}

Проблема в том, когда я использовал обычный URL-адрес загрузки страницы. Но когда я использовал URL-адрес, который я собираюсь использовать, и при котором пользователь вводит свое имя пользователя и пароль в всплывающем окне браузера (я имею в виду не всплывающее окно с веб-сайта) . Я получаю сообщение об ошибке с этой страницей занимает много времени, чтобы загрузить и ничего больше. Может кто-нибудь дать мне несколько треков, чтобы следовать... Спасибо

2 ответа

Решение

Похоже, что всплывающее окно, на которое вы ссылаетесь, на самом деле побуждает сайт basic аутентификация.

В этом случае вам необходимо предоставить IRequestHandler.GetAuthCredentials обработчик.

Так как вопрос и ответ очень старый, и я хотел бы дать последнее обновление этого решения, есть небольшое изменение согласно предложенному оригинальному решению.

любой, кто использует cefsharp, должен реализовать диалог аутентификации. и изменения в методе

 bool IRequestHandler.GetAuthCredentials(IWebBrowser browserControl, IBrowser browser, IFrame frame, bool isProxy, 
        string host, int port, string realm, string scheme, IAuthCallback callback)
    {
        //NOTE: If you do not wish to implement this method returning false is the default behaviour
        // We also suggest you explicitly Dispose of the callback as it wraps an unmanaged resource.

        // shyam - original implemenation.
        //callback.Dispose();
        //return false;

        bool handled = false;

        // Instantiate the dialog box
        AuthDialog dlg = new AuthDialog(host); // create new dialog with username and password field.

        // Open the dialog box modally 
        dlg.ShowDialog();

        if (dlg.DialogResult == System.Windows.Forms.DialogResult.OK)
        {
            // The user did not cancel out of the dialog. Retrieve the username and password.
            callback.Continue(dlg.UserName,dlg.Password);
            handled = true;
        }

        return handled;
    }
Другие вопросы по тегам