出于安全原因,当用户单击查看本地html文件的子类WebBrowser中的弹出窗口时,我正在尝试禁用Outlook(或任何默认邮件客户端)的打开。我已经尝试用没有“mailto:”链接引用的版本替换DocumentText,但是这一直在失败(无论我尝试什么,它都会在设置DocumentText之后坚持使用about:blank页面。)
我的问题的最佳解决方案是通过注册表或其他方式完全禁用任何默认邮件客户端,但我对我尚未尝试过的任何内容持开放态度。有什么想法吗?
答案 0 :(得分:0)
我能够通过覆盖html文件来修复我的安全问题,以便不包含“mailto”引用。替换文件后,我只是刷新它:
TextReader tr = File.OpenText(e.Url.LocalPath);
htmlFile = tr.ReadToEnd();
tr.Close();
tr.Dispose();
if (htmlFile.Contains("mailto:support@website.com"))
{
htmlFile = htmlFile.Replace("mailto:support@website.com", @"about:blank");
//Recreate new file with fixed html
File.Delete(e.Url.LocalPath);
TextWriter tw = File.CreateText(e.Url.LocalPath);
tw.Write(htmlFile);
tw.Flush();
tw.Close();
tw.Dispose();
Refresh();
}