利用WebBrowser网址访问问题及不同操作系统IE本地网络注册表解决

来源:互联网 发布:萨格拉斯体型 知乎 编辑:程序博客网 时间:2024/06/06 18:24

利用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 { }

 

原创粉丝点击