gpt4 book ai didi

.net-core - 绕过 WebView2 中显示的 Kestrel 服务器的无效 SSL 证书

转载 作者:行者123 更新时间:2023-12-05 02:06:44 35 4
gpt4 key购买 nike

给定

  • WPF 应用启动 Kestrel 服务器
  • Kestrel 监听 http://0.0.0.0:5000https://0.0.0.0:6000
  • Kestrel 指向静态 HTML 文件 index.html
  • WPF 显示指向 https://127.0.0.1:6000/index.html
  • 的浏览器控件 WebView2

结果

  • 如果 WebView2 指向 http://127.0.0.1:5000/index.html 一切正常
  • 如果 WebView2 指向 https://127.0.0.1:6000/index.html 我会收到有关不受信任的证书的错误

问题

  • 是否可以在 Kestrel 或 WebView2 中禁用或忽略本地主机的 SSL 验证

不应触及 Windows 设置,例如将“localhost”证书标记为在“msmc”中受信任或生成自签名证书,因为此 WPF 应用程序应该在不同的计算机上运行。

换句话说,一定有比这个 article 中描述的更简单的方法.

红隼

public class WebServer{  public static Task Run()  {    var configuration = new ConfigurationBuilder().Build();    var urls = new[]    {      "http://0.0.0.0:7000",      "https://0.0.0.0:8000"    };    var environment = WebHost      .CreateDefaultBuilder(new string[0])      .UseConfiguration(configuration)      .UseUrls(urls)      .UseContentRoot(Directory.GetCurrentDirectory())      .UseIISIntegration()      .UseStartup<WebStartup>();    return environment.Build().RunAsync();  }}public class WebStartup{  public IConfiguration Configuration { get; }  public WebStartup(IConfiguration configuration)  {    Configuration = configuration;  }  public void ConfigureServices(IServiceCollection services)  {    services.AddSpaStaticFiles(configuration =>    {      configuration.RootPath = "index.html";    });  }  public void Configure(IApplicationBuilder app, IWebHostEnvironment env)  {    app.UseDeveloperExceptionPage();    //app.UseHsts();    //app.UseHttpsRedirection();    app.UseStaticFiles();    app.UseSpaStaticFiles();  }}

WPF 中的 WebView2 控件

public MainWindow(){  WebServer.Run();  InitializeComponent();  WebView.Source = new Uri("https://127.0.0.1:6000/index.html"); // HTTP on 5000 works, HTTPS 6000 - no  WebView.NavigationCompleted += (object sender, CoreWebView2NavigationCompletedEventArgs args) =>  {    WebView.InvalidateVisual();  };}

最佳答案

WebView2 当前不直接公开该功能。如果你愿意,你可以在 WebView2 Feedback 中打开一个问题。我们可以提出功能请求。

作为解决方法,您可以尝试使用 CoreWebView2.CallDevToolsProtocolMethodAsync method调用 Security.setIgnoreCertificateErrors DevTools Protocol method .但是,我还没有尝试过 setIgnoreCertificateErrors,它也被标记为实验性的,所以不是积极的,它将以你想要的方式工作。

关于.net-core - 绕过 WebView2 中显示的 Kestrel 服务器的无效 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62512147/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com