【问题标题】:Identifying cookies识别 cookie
【发布时间】:2018-03-02 09:39:27
【问题描述】:

我有一个 ASP.NET Core Web 应用程序,其 API 要求用户进行身份验证。大约一个月前,我意识到我不能再使用 Postman API 工具,因为即使我通过了身份验证,我的 API 调用也会得到响应,就好像我没有通过身份验证一样。

当我查看 cookie 选项卡下的可用 cookie 时,我看到其中四个。我认识其中之一,但不认识其他 3 个。

在进行 API 调用时,我在 Postman 的“Cookies”选项卡中看到的 cookie 是:

  1. ARRA 亲和
  2. .AspNetCore.my_cookie
  3. _ga
  4. _gid

所有四个 cookie 都显示了我的域。我注意到的唯一区别是第二个 cookie 显示 mydomain.com 而其他显示 .mydomain.com。我认识第二个,因为我将我的 cookie 命名为 my_cookie。那一个也是最大的一个,这也是有道理的,因为我在 cookie 中存储了一些信息。我假设,.AspNetCore 前缀是由我的应用程序添加的,因为它是一个带有 API 的 ASP.NET Core Web 应用程序。

其他三个 cookie 是什么?我需要它们吗?

我注意到的另一件重要的事情是,当我使用 Fiddler 检查我的 API 调用时,在 Fiddler 的“Cookies”选项卡下,我只能看到我无法识别的树 cookie 是通过 API 调用发送的。我没有看到我认识的由我的网站发布的。

看起来我与 Postman 的问题与这三个通过 API 调用发送的身份不明的 cookie 有关,但不是我发出的那个,即.AspNetCore.my_cookie 不是通过我的 API 调用发送的。

【问题讨论】:

    标签: asp.net asp.net-web-api cookies asp.net-core postman


    【解决方案1】:

    _ga_gid 用于收集 Google Analytics 数据。

    名称 - 有效期 - 说明

    _gid - 24 小时 - 用于区分用户。

    _gat - 1 分钟 - 用于限制请求率。

    如果您想了解更多关于 Google Analytics cookie 的信息,请read this

    另一方面,对于 ARRAffinity。默认情况下,Windows Azure 网站使用 ARRAffinity cookie 来确保来自用户的后续请求被路由回用户最初连接的网站实例。换句话说,Windows Azure 网站假定您的网站不是无状态的。如果您要将网站部署扩展到多个实例,ARR 服务器会处理此 ARR Affinity cookie 并将您发送回处理您的初始请求(发起 cookie 的请求)的实例。

    如果您对此还不熟悉,请查看this blog,深入讨论网站的 ARR 亲和性以及如果您的网站是无状态的,如何禁用 ARR 亲和性。

    【讨论】:

    • 感谢您的详细解释。知道为什么我的网站发出的 cookie 没有通过 API 调用发送吗?看起来所有其他 cookie 都是通过 API 调用发送的。
    • 有趣的是,我通过浏览器进行的所有调用都没有问题。我所有的前端电话都得到了很好的回答。 Postman 不发送我的应用程序响应 API 调用所需的 cookie。
    • 我不知道会发生什么,但我发现了一个关于邮递员和 cookie 的有趣链接。 getpostman.com/docs/postman/sending_api_requests/cookies,也许可以在stackoverflow中查看这篇文章stackoverflow.com/questions/30890403/…
    猜你喜欢
    • 2012-06-28
    • 2021-04-03
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    相关资源
    最近更新 更多