WebView2 応用テクニック
リクエスト時にBasic認証を行う
WebView2でリクエストする際にBasic認証を行う方法です。
Basic認証の設定されているページにアクセスしたときにCoreWebView2.BasicAuthenticationRequested
イベントが発生するので、
ここでID/パスワードを設定します。
//C# webView2.CoreWebView2.BasicAuthenticationRequested += delegate ( object sender, CoreWebView2BasicAuthenticationRequestedEventArgs args) { args.Response.UserName = "test"; args.Response.Password = "password"; };
サンプル
Basic認証用のテストページにアクセスするサンプルです。
ブラウザで普通にアクセスするとBasic認証のダイアログが表示されますが、
以下のコードではダイアログは表示されずに認証後のページが表示されます。
Imports Microsoft.Web.WebView2.Core Public Class Basic Private Async Sub Basic_Load(sender As Object, e As EventArgs) Handles MyBase.Load Await InitializeAsync() End Sub Private Async Function InitializeAsync() As Task Await wv2.EnsureCoreWebView2Async(Nothing) 'Basic認証のID/パスワードを指定 AddHandler wv2.CoreWebView2.BasicAuthenticationRequested, Sub(sender As Object, args As CoreWebView2BasicAuthenticationRequestedEventArgs) args.Response.UserName = "test" args.Response.Password = "password" End Sub End Function Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'サイトを表示 wv2.CoreWebView2.Navigate("https://web.biz-prog.net/test/basic/testpage_basic.html") End Sub End Class
using System; using System.Windows.Forms; using Microsoft.Web.WebView2.Core; namespace WindowsFormsCS { public partial class Basic : Form { public Basic() { InitializeComponent(); } private void Basic_Load(object sender, EventArgs e) { InitializeAsync(); } async void InitializeAsync() { await webView2.EnsureCoreWebView2Async(null); //Basic認証のID/パスワードを指定 webView2.CoreWebView2.BasicAuthenticationRequested += delegate ( object sender, CoreWebView2BasicAuthenticationRequestedEventArgs args) { args.Response.UserName = "test"; args.Response.Password = "password"; }; } private void button1_Click(object sender, EventArgs e) { if (webView2.CoreWebView2 == null) return; //サイトを表示 webView2.CoreWebView2.Navigate("https://web.biz-prog.net/test/basic/testpage_basic.html"); } } }