2015-04-13 19 views
5

Tôi cần phải ebed trình duyệt web trong một ứng dụng Wpf, tôi đã thử với một từ hộp công cụ nhưng nhận được một số vấn đề và đi đến CefSharp.CefSharp tải trang có thông tin đăng nhập trình duyệt

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

Vấn đề là khi tôi sử dụng url bình thường khi tải trang. Nhưng khi tôi sử dụng url tôi dự định sử dụng và whith mà người dùng nhập người dùng và mật khẩu của mình trong trình duyệt bật lên (ý tôi không phải là cửa sổ bật lên từ trang web). Tôi nhận được một lỗi với trang này mất nhiều thời gian để tải và không có gì khác. Ai đó có thể cho tôi một số bản nhạc để theo dõi ... Cảm ơn

+0

Bạn đang gặp lỗi gì? Ngoài ra, có một số dự án mẫu để giúp bạn bắt đầu xem https://github.com/cefsharp/CefSharp.MinimalExample Thử tải trang web của bạn bằng ví dụ và xem bạn có gặp lỗi tương tự hay không. Nó cũng hữu ích nếu bạn bao gồm phiên bản 'CefSharp' như một thực hành chung. – amaitland

Trả lời

4

Có vẻ như trang web bạn đang đề cập đến thực tế là trang web nhắc xác thực basic.

Trong trường hợp đó, bạn cần cung cấp trình xử lý IRequestHandler.GetAuthCredentials.

+0

vâng, tôi đã không tìm đúng từ .... Vì vậy, bạn có nghĩa là tôi cần phải thực hiện một trình xử lý và tự làm cửa sổ nhắc, nhận người dùng và pwd và đặt các giá trị vthese trong chuỗi truyền bằng cách ref trong trình xử lý ... –

+1

Yep, về cơ bản cung cấp cho người dùng hộp thoại của riêng bạn để nắm bắt tên người dùng và mật khẩu, sau đó đặt hai tham số ref và trả về true; https://github.com/cefsharp/CefSharp/blob/master/CefSharp/IRequestHandler.cs#L59 – amaitland

+0

Ok, cảm ơn rất nhiều, tôi đến từ MS ActiveX vì vậy tôi cần phải khám phá, tôi thấy doc không tốt như vậy .. –

4

Là câu hỏi & câu trả lời là rất cũ và tôi muốn cung cấp cho các bản cập nhật mới nhất về giải pháp này, có thay đổi nhỏ theo giải pháp ban đầu được đề xuất.

bất kỳ ai sử dụng cefsharp đều cần triển khai hộp thoại xác thực. và các thay đổi trong phương thức là

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; 
    } 
Các vấn đề liên quan