问题描述
|
出于安全原因,当用户单击我的子类Webbrowser中的弹出窗口以查看本地html文件时,我试图禁用Outlook(或任何默认邮件客户端)的打开。我已经尝试用\“ mailto:\”链接引用替换版本的DocumentText,但这一直失败(无论我如何尝试,在设置DocumentText之后,它始终停留在about:blank页面上)。
解决我的问题的最佳方法是通过注册表或其他方式完全禁用任何默认的邮件客户端,但是我可以接受尚未尝试的任何操作。有任何想法吗?
解决方法
通过覆盖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();
}