如何解决如何在WPF WebView2中禁用CORS
我正在开发一个使用.Net5 / WPF显示WebView2的应用程序。
我想禁用CORS。
我已经安装了Chromium Edge Canary 86.0.607.0。
在Edge中,可以通过在快捷方式中添加以下参数来禁用CORS。
--disable-web-security --user-data-dir="C://Chrome dev session"
我也想禁用WebView2。
解决方法
我在这个论坛上得到了答案。抱歉,此网站是日语。
https://social.msdn.microsoft.com/Forums/ja-JP/9bac6d51-94eb-42c8-96f0-4081e9a4056d/wpf-webview2-cors-?forum=wpfja
它与下面的代码一起使用。
* 必须在WebView2.Source中指定URL之前进行设置。
请注意不要在Xaml端指定来源。
/// <summary>
/// WPF Window Constructor
/// </summary>
/// <param name="url">URL</param>
public WebViewWindow(string url)
{
InitializeComponent();
// async start
Loaded += async (_,__) => await _Routine(url);
}
/// <summary>
/// task
/// </summary>
/// <param name="url">URL</param>
/// <returns>task</returns>
async Task _Routine(string url)
{
var localPath = Environment.GetEnvironmentVariable("LocalAppData");
var webviewPath = $@"{localPath}\Microsoft\Edge SxS\Application\86.0.608.0";
var userPath = "C://Chrome dev session";
// Argument setting to disable COAR
var op = new CoreWebView2EnvironmentOptions("--disable-web-security");
var env = await CoreWebView2Environment.CreateAsync(webviewPath,userPath,op);
await webView.EnsureCoreWebView2Async(env);
if (Uri.TryCreate(url,UriKind.RelativeOrAbsolute,out Uri? result))
{
webView.Source = result;
}
}
,
对于 WPF,在构造函数中调用以下代码
async void InitializeAsync()
{
var op = new CoreWebView2EnvironmentOptions("--disable-web-security");
var env = await CoreWebView2Environment.CreateAsync(null,null,op);
await webView.EnsureCoreWebView2Async(env);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。