我在WPF应用程序中使用CefSharp并希望加载网站,登录然后导航到同一网站的一部分。加载网站并登录正常。但是当我尝试导航到特定的URL时,我不再登录了。当我手动点击CefSharp浏览器控件中的链接时,情况并非如此。这是我基本上做的事情:
public class MainWindow
{
public MainWindow()
{
Cef.Initialize(new CefSettings()
{
CachePath = "C:\\Users\\Documents\\CefCachePath"
});
InitializeComponent();
AutoNavigation()
}
private async void AutoNavigation()
{
await InvokeBrowserActionAsync(browser, () => browser.Address = loginUrl);
await InvokeBrowserActionAsync(browser, () => browser.ExecuteScriptAsync(loginScript);
await InvokeBrowserActionAsync(browser, () => browser.Address = targetUrl);
}
public static Task InvokeBrowserActionAsync(ChromiumWebBrowser browser, Action action)
{
var tcs = new TaskCompletionSource<bool>();
EventHandler<NavStateChangedEventArgs> handler = null;
handler += (sender, args) =>
{
if (!args.IsLoading)
{
browser.NavStateChanged -= handler;
tcs.TrySetResult(true);
}
};
browser.NavStateChanged += handler;
action.Invoke();
return tcs.Task;
}
}
感谢您的帮助
答案 0 :(得分:0)
如果没有更具体的信息,我会下划线来比较线路上发生的通信,例如使用Fiddler等工具为您的手册和AutoNavigation()
驱动案例。寻找丢失的Authorization:
标题等