利用WebBrowser封装专门网址访问,会有诸多安全问题。如:下拉列表改变不引起回发、图片按钮失效等,特别是服务器版本的操作系统
彻底解决方法,将访问的地址通过写注册表的方法自动加入IE的本地网络以降低安全控制。
具体代码:
string _Url = “http://61.135.169.125”
string keyRanges = "Ranges";
try
{
RegistryKey reg = Registry.LocalMachine;
RegistryKey regSet = reg.OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", false);
if (regSet.GetValue("ProductName") != null
&& regSet.GetValue("ProductName").ToString().IndexOf(" Server") != -1)
{
keyRanges = "EscRanges";
}
regSet.Close();
reg.Close();
}
catch { }
try
{
//加入IE本地
int p1 = _Url.IndexOf("://");
string http = _Url.Substring(0, p1);
int p2 = _Url.LastIndexOf(":");
string ip;
if (p2 == p1)
{
ip = _Url.Substring(p1 + 3);
}
else
{
ip = _Url.Substring(p1 + 3, p2 - p1 - 3);
}
RegistryKey reg = Registry.CurrentUser;
RegistryKey regSet = reg.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap", true);
RegistryKey regSetRanges = regSet.OpenSubKey(keyRanges, true);
if (regSetRanges == null)
{
regSetRanges = regSet.CreateSubKey(keyRanges);
}
RegistryKey regSetUrl = regSetRanges.OpenSubKey("Range0");
if (regSetUrl == null)
{
regSetUrl = regSetRanges.CreateSubKey("Range0");
regSetUrl.SetValue(":Range", ip);
regSetUrl.SetValue(http, 1, RegistryValueKind.DWord);
}
regSetUrl.Close();
regSetRanges.Close();
regSet.Close();
reg.Close();
}
catch { }
try
{
//修改IE打印设置
RegistryKey reg = Registry.CurrentUser;
RegistryKey regSet = reg.OpenSubKey("Software\\Microsoft\\Internet Explorer\\PageSetup", true);
if (regSet != null)
{
regSet.SetValue("header", "");
regSet.SetValue("footer", "");
regSet.SetValue("margin_bottom", "0.39");
regSet.SetValue("margin_left", "0.39");
regSet.SetValue("margin_right", "0.39");
regSet.SetValue("margin_top", "0.39");
regSet.Close();
}
reg.Close();
}
catch { }
本文介绍了一种通过写注册表方法自动加入IE本地网络以降低安全控制的解决方案,针对利用WebBrowser封装专门网址访问时遇到的安全问题,特别针对服务器版本的操作系统进行了详细阐述。包括具体代码实现步骤,涉及地址解析、注册表操作以及IE本地网络加入过程。
1627

被折叠的 条评论
为什么被折叠?



