尝试获取我在 ARCGIS 上在线设置的 cookie 值,但没有获得任何值



我正在尝试使用 ESRI 运行时 SDK for .net v100 在线在 ESRI ArcGIS 中设置一个 cookie。

        var cookie = new CookieHeaderValue("customCookie", cred.Token);             
        var response = Request.CreateResponse(HttpStatusCode.OK, new    {
                                                                            token = cred.Token,
                                                                            expires = cred.ExpirationDate
                                                                        });
        response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");            
        response.Headers.AddCookies(new CookieHeaderValue[] { cookie });
        return response;

现在,当我稍后尝试在后续请求中使用以下命令检索该cookie时,我得到空值。

CookieHeaderValue cookie = context.Request.Headers.GetCookies("customCookie").FirstOrDefault();

我想知道是否有其他方法可以获取我设置的饼干?

你使用的是 v100 吗?

如果是,您可以尝试以下代码:

        ArcGISHttpClientHandler.HttpRequestBegin += (sender, request) =>
        {
            var cookieContainer = ((System.Net.Http.HttpClientHandler)sender).CookieContainer;
            var cookies = cookieContainer.GetCookies(request.RequestUri);
            var customCookie = new Cookie("customCookie", "someValue") { Domain = request.RequestUri.Host };
            bool foundCookie = false;
            foreach (Cookie cookie in cookies)
            {
                if (cookie.Name == customCookie.Name)
                {
                    foundCookie = true;
                    break;
                }
            }
            if (!foundCookie)
                cookieContainer.Add(customCookie);
        };

ArcGISHttpClientHandler 有一个事件 HttpRequestBegin,每个请求都会调用该事件。您可以使用 CookieContainer.GetCookies 和 Add 来检索/添加 Cookie。

相关内容

  • 没有找到相关文章

最新更新