【发布时间】:2021-02-11 00:03:49
【问题描述】:
我在WPF 电子邮件应用程序中使用DotNetBrowser 来显示电子邮件内容。我想阻止所有远程内容和远程图像。我使用这个email privacy tester 来检查我是否可以正确阻止远程内容。
我检查了DotNetBrowser 的文档,发现可以使用BrowserPreferences 设置禁用一些东西。我使用以下代码禁用了所有功能:
BrowserPreferences pref = new BrowserPreferences {
ImagesEnabled = false,
JavaScriptEnabled = false,
PluginsEnabled = false,
WebAudioEnabled = false,
ApplicationCacheEnabled = false,
LocalStorageEnabled = false,
AllowDisplayingInsecureContent = false,
AllowRunningInsecureContent = false,
...
};
wpfBrowserView.Browser.Preferences = pref;
wpfBrowserView.Browser.LoadHTML(myHtml);
但这只是阻止了几个可能的有害内容。然后我设置了一个自定义LoadHandler,我可以在其中防止更多情况:
MyBrowserLoadHandler loadHandler = new MyBrowserLoadHandler();
loadHandler.Load += args => {
// just don't allow to load the content
};
wpfBrowserView.Browser.LoadHandler = loadHandler;
这还不够,因为其中两个(Link Prefetch 和 CSS link tag)仍然失败。
我也不想对电子邮件的 html 进行静态分析来处理这些情况,所以我正在寻找一种更简单的方法来做这件事。例如,在 Android 的 WebView 中,只需调用两个方法(setBlockNetworkLoads(true) 和 setBlockNetworkImage(true))就可以完成全部工作。 DotNetBrowser有这样的解决方案吗?
【问题讨论】:
标签: wpf email privacy dotnetbrowser