我正在使用winforms和webview2创建一个自定义的互联网浏览器,每当我在使用学校互联网时搜索内容时,它都有一个代理框,询问我的用户名和密码。我怎么能每次打开这个盒子就自动装满它?
发布于 2021-02-18 09:58:24
有代理设置的命令行选项。可以通过CoreWebView2EnvironmentOptions实例的AdditionalBrowserArguments属性设置这些选项,并在创建CoreWebView2时传递给CoreWebView2Environment.CreateAsync。
例如:
WebView2 webView21 = new Microsoft.Web.WebView2.WinForms.WebView2();
private async void Form1_Load(object sender, EventArgs e)
{
var options = new CoreWebView2EnvironmentOptions();
options.AdditionalBrowserArguments = "--proxy-server=\"proxyhostname:8000\"";
var env = await CoreWebView2Environment.CreateAsync(null, null, options);
await webView21.EnsureCoreWebView2Async(env);
webView21.Dock = DockStyle.Fill;
this.Controls.Add(webView21);
webView21.Source = new Uri("Https://stackoverflow.com");
}
以下是您可以使用的选项:
--no-proxy-server
:不使用代理。--proxy-auto-detect
:自动检测代理配置。--proxy-server=<scheme>=<uri>[:<port>][;...] | <uri>[:<port>] | "direct://"
:使用自定义配置。--proxy-bypass-list=(<trailing_domain>|<ip-address>)[:<port>][;...]
:绕过指定的分号分隔主机列表的任何指定代理。--proxy-pac-url=<pac-file-url>
:在指定的URL处使用PAC文件。要查看有关这些选项的更多描述和示例,请参见:
发布于 2022-04-13 15:50:39
WebView2 webView21 = new Microsoft.Web.WebView2.WinForms.WebView2();
var options = new CoreWebView2EnvironmentOptions();
options.AdditionalBrowserArguments = "--proxy-server=\"" + proxy.Address.Host + ":" + proxy.Address.Port + "\"";
var env = await CoreWebView2Environment.CreateAsync(null, null, options);
await webView21.EnsureCoreWebView2Async(env);
webView21.CoreWebView2.BasicAuthenticationRequested += new EventHandler<CoreWebView2BasicAuthenticationRequestedEventArgs>(delegate (object? sender, CoreWebView2BasicAuthenticationRequestedEventArgs e)
{
var _credential = proxy == null ? null : proxy?.Credentials as NetworkCredential;
if (_credential != null)
{
e.Response.UserName = _credential.UserName;
e.Response.Password = _credential.Password;
}
});
https://stackoverflow.com/questions/66254963
复制相似问题