1

Как добавить коллекцию куки в WebView2 на основе WinForms?

Как делал раньше: Прогонял список куки через foreach , если сайт подходит , добавлял в контейнер, сейчас так не хочет

webView.CoreWebView2.CookieManager.CreateCookie() <-- требует формат string, string, string, string и больше никак

webView.CoreWebView2.CookieManager.CreateCookieWithSystemNetCookie(Cookie cookie) <-- позволяет добавить только 1 куку

webView.CoreWebView2.CookieManager.AddOrUpdateCookie(CoreWebView2Cookie cookie) <-- Не дается

using Microsoft.Web.WebView2;
     using Microsoft.Web.WebView2.Core;
     using Microsoft.Web.WebView2.WinForms;
     using Microsoft.Web.WebView2.Core.Raw;
List&lt;string&gt; cookie = new List&lt;string&gt;();

private async void guna2Button7_Click(object sender, EventArgs e)
{
    await webView.EnsureCoreWebView2Async(null);
    string uri = @&quot;https://trovo.live&quot;;
    webView.CoreWebView2.CookieManager.AddOrUpdateCookie(AddCookie());
    webView.CoreWebView2.Navigate(uri);
}
private CoreWebView2Cookie AddCookie()
{
    CoreWebView2Cookie core = new CoreWebView2Cookie();
    foreach(string cook in cookie)
    if(cook.Contains(&quot;trovo&quot;))
        {
            string[] str = cook.Split(new char[] { '\t' });
            core.Domain = str[0];
            //и т.д.
        }
    return core;
}

Долнение #1

 private async void guna2Button7_Click(object sender, EventArgs e)
    {
        await webView.EnsureCoreWebView2Async(null);
        webView.CoreWebView2Ready += WebView2_CoreWebView2Ready;
    }
    private void WebView2_CoreWebView2Ready(object sender, EventArgs e)
    {
        try
        {
            var coreWebView2 = webView.CoreWebView2;
            coreWebView2.AddWebResourceRequestedFilter("url", CoreWebView2WebResourceContext.All);
            coreWebView2.WebResourceRequested += CoreWebView2_WebResourceRequested;
        coreWebView2.Navigate(&quot;url&quot;);
    }
    catch (Exception exception)
    {
        MessageBox.Show(this, exception.ToString());
        throw;
    }
}

private void CoreWebView2_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
{
    e.Request.Headers.SetHeader(&quot;name&quot;, &quot;value&quot;);
}

Apple One
  • 118
  • 7
  • А зачем вам вообще браузер? Чисто для кук? Или надо страничку пользователю обязательно показать? Быть может такая штука подойдёт? – aepot Apr 02 '21 at 23:38
  • @aepot такая штука есть. Надо именно страничку показать, в этом то и сложность, причем показать ее надо будучи авторизованным. Т.е. зайти через куки – Apple One Apr 02 '21 at 23:46
  • А если так? – aepot Apr 02 '21 at 23:56
  • @aepot Сходу выдает ошибку

    Ошибка CS1061 "WebView2" не содержит определения "CoreWebView2Ready", и не удалось найти доступный метод расширения "CoreWebView2Ready", принимающий тип "WebView2" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку).

    Это под WPF подозреваю. Юзинг поставил , даже в документашке порылся , ничего не нашел толкового. Она говорит что все верно, но нет

    – Apple One Apr 03 '21 at 00:33
  • Там не в WPF дело, а в том, что WW2 еще в разработке и событие могли переназвать по-другому в одной из версий, ищите что-то похожее. – aepot Apr 03 '21 at 00:37
  • @aepot Нет. Не подходит. Просто не добавляется и все – Apple One Apr 03 '21 at 01:06

0 Answers0