如何允许网站访问 CEFSharp WPF 中的本地文件系统?

How Can I Allow Website to Access Local File System in CEFSharp WPF?

我正在编写一个带有集成 CEFSharp web 浏览器控件的 wpf 应用程序,但我在网站上遇到了障碍。该网站需要访问本地文件系统,但我不确定如何或在何处在后端捕获它并授予访问权限。我已经实现了 IRequestHandler 和 IResourceRequestHandler,但我不确定还能做什么。

这是来自网站的错误:

不知何故,Chrome 捕获并处理它:

我想以类似的方式处理它。感谢任何帮助。

如果我在 Chrome 浏览器上正确读取 documentation,Chromium 似乎会自动调用 chrome.fileSystem.requestFileSystem(object options, function callback)

我想如果你想手动处理这个,你需要提示用户这个 permission/action,意思是从 CEFSharp 的 Chromium 客户端内部做同样的 API 调用。

谢谢@amaitland 和@Jimenemex 的回复。他们确实让我朝着正确的方向前进。最后,我需要在 IRequestHandler 的“OnQuotaRequest”事件中捕获文件系统请求。以下代码解决了我的问题:

public bool OnQuotaRequest(IWebBrowser chromiumWebBrowser, IBrowser browser, string originUrl, long newSize,
        IRequestCallback callback)
    {
        string askingURL = Helper.GetWebsiteName(originUrl);
        var infoWindow = new InformationWindow("", "Allow " + askingURL, "to store files on this device?");
        infoWindow.OkButton.Visibility = Visibility.Hidden;
        infoWindow.YesButton.Visibility = Visibility.Visible;
        infoWindow.NoButton.Visibility = Visibility.Visible;
        infoWindow.Topmost = true;

        if (infoWindow.ShowDialog() == true)
        {
            callback.Continue(true);
            return true;
        }

        return false;
    }