C# 无法设置cookie:Cef.SetCookie()始终返回false
这个问题已经困扰了我好几天了。我完全无法使用C# 无法设置cookie:Cef.SetCookie()始终返回false,c#,chromium-embedded,cefsharp,C#,Chromium Embedded,Cefsharp,这个问题已经困扰了我好几天了。我完全无法使用CefSharp设置cookie 下面是我希望能够工作的代码块(更重要的是,它尽可能幼稚,不包括显式线程上下文切换): Application.Current.Dispatcher.Invoke(新操作(()=> { var settings=新设置(); settings.CachePath=“cookies”; 初始化(设置); Cef.DeleteCookies(“,”); Cef.VisitAllCookies(new CookieVisito
CefSharp
设置cookie
下面是我希望能够工作的代码块(更重要的是,它尽可能幼稚,不包括显式线程上下文切换):
Application.Current.Dispatcher.Invoke(新操作(()=>
{
var settings=新设置();
settings.CachePath=“cookies”;
初始化(设置);
Cef.DeleteCookies(“,”);
Cef.VisitAllCookies(new CookieVisitor());//Argggh!经过多次尝试和错误后,我发现了这一点。该网站上的一篇帖子帮助我进行了调查:
请尝试为域而不是“/”传递空字符串,或将Url作为“/mywebsite”传递,并将域作为“192.16.1.6”传递
这让我怀疑我的cookie参数是否因为某种原因被拒绝。我最终尝试使用以下参数设置cookie:
var isSet=Cef.SetCookie(,“用户名”,“测试用户”,“假”,“假,假,假,新日期时间(2020,1,1));
更严格地指定URL是成功的关键。我想DNS别名有时还不够好。无论如何,我将离开这篇文章,以防其他CefSharp
er遇到类似情况。以下是我在代码下面添加cookie时使用的代码
var mngr = Cef.GetGlobalCookieManager();
Cookie Ac = new Cookie();
Ac.Name = "<Cookie Name>";
Ac.Value = "<Value>";
mngr.SetCookieAsync(<URL to Navigate>, Ac);
var mngr=Cef.getGlobalCokieManager();
Cookie Ac=新Cookie();
Ac.名称=”;
Ac.值=”;
mngr.SetCookieAsync(,Ac);
感谢您对阿卡什·帕特尔的建议。但这个例子在我的案例(CefSharp.OffScreen 71.0.2)中不起作用,因此我将其编辑如下:
//_browser is object of ChromiumWebBrowser
var cookieManager=_browser.RequestContext.GetDefaultCookieManager(null);
Cookie cookie = new Cookie
{
Name = name,
Value = value
};
cookieManager.SetCookie(url, cookie);
//or cookieManager.SetCookieAsync(url, cookie);
//_browser is object of ChromiumWebBrowser
var cookieManager=_browser.RequestContext.GetDefaultCookieManager(null);
Cookie cookie = new Cookie
{
Name = name,
Value = value
};
cookieManager.SetCookie(url, cookie);
//or cookieManager.SetCookieAsync(url, cookie);