【问题标题】:Postman is not using cookie邮递员没有使用 cookie
【发布时间】:2018-02-11 00:21:12
【问题描述】:

我在我的应用开发中使用 Postman 已经有一段时间了,从来没有遇到过任何问题。我通常在调试 ASP.NET API 代码时将它与 Google Chrome 一起使用。

大约一个月前,我开始遇到 Postman 似乎没有发送我的网站发出的 cookie 的问题。

通过 Fiddler,我检查了我对我的 API 进行的调用,发现 Postman 没有发送我的 API 应用程序发出的 cookie。它正在发送其他 cookie,但不是它应该发送的——见下文:

在“Cookies”下,我确实看到了我发出的 cookie,即.AspNetCore.mysite_cookie——见下文:

知道为什么会发生这种情况吗?

附:我认为这个问题是在我对代码进行一些更改以命名我的 cookie 之后开始的。我的 API 应用程序使用社交身份验证,我决定命名这两个 cookie,即我在用户通过身份验证后从 Facebook/Google/LinkedIn 收到的一个,以及我向经过身份验证的用户发布的一个。我将我从社交网站获得的 cookie 称为 social_auth_cookie,而我发布的 cookie 命名为 mysite_cookie。我认为这与我遇到的这个问题有关。

【问题讨论】:

  • 您是在本地测试还是在生产部署中测试?
  • 在这两种情况下,我得到了相同的结果。
  • 是部署在http还是https? API调用是http还是https?
  • 本地是 http,但在 Azure 上运行的 API 是 https
  • 我认为您的问题可能是 SSL 终止和安全 cookie。尝试不将cookie设置为安全,看看它是否有效

标签: asp.net google-chrome cookies postman


【解决方案1】:

相关 cookie 无法通过 HTTP 连接合法发送,因为其 secure attribute 已设置。

出于某种原因,mysite_cookie 的安全属性设置与 social_auth_cookie 不同,或者是因为您在代码中设置它...

var cookie = new HttpCookie("mysite_cookie", cookieValue);
cookie.Secure = true;

...或者因为服务配置为自动设置它,例如在web.config 中有这样的东西:

<httpCookies httpOnlyCookies="true" requireSSL="true"/>

该标志也可能由生产环境中的网络设备(例如 SSL 卸载设备)设置。但这在您的开发环境中不太可能。

我建议您尝试使用相同的代码库,但通过 https 连接。如果您正在处理影响身份验证机制的代码,那么您真的应该set up your development environment with SSL,否则您将错过很多错误,并且您将无法执行任何有意义的渗透测试或应用程序扫描潜在威胁。

【讨论】:

  • 我没有将 cookie 设置为安全,并且我的应用程序的根目录中没有 web.config。此外,Postman 无法在生产环境和本地开发环境中发送 cookie。我的产品使用 SSL,但 localhost 没有。您还认为这是由于 cookie 设置为安全造成的吗?
  • cookie 的标志设置为安全。它在那里说。如果你没有设置它,你需要弄清楚是谁做了。我会小心通过比较环境来得出推论,因为很多事情都可能不同——请遵循证据。
【解决方案2】:

如果您的浏览器中有 cookie,则无需担心它们。

您可以通过安装 Postman Interceptor 扩展程序(“同步”按钮的左侧)来使用您的浏览器 cookie。

【讨论】:

  • 我已经在使用 Interceptor 了,在这个问题开始之前它运行良好。正如我在原帖中提到的,这个问题的发生时间与我命名我的 cookie 相吻合。
【解决方案3】:

我最近在使用 ASP.NET core 2.0 时遇到了这个问题。然而,ASP.NET Core 1.1 似乎工作得很好,并且在 Postman 中设置了 cookie

【讨论】:

  • 欢迎来到 SO!最好将其作为对原始问题的评论发布,因为您没有完整的答案(“我在 2.0 中看到过这个,但在 1.1 中没有看到过”并没有告诉我们为什么会发生这种情况,除非它是一个好 -已知错误)。尝试发布 cmets,直到您有一个您认为满意的答案!
【解决方案4】:

从您的描述看来,邮递员没有拿起您想要的 cookie,因为它无法识别 cookie 的名称,或者它仍然指向使用旧 cookie,

你可以尝试的事情:

  1. 撤消所有名称更改,看看它是否有效(只是为了找到问题的根源)

  2. 重命名一个 cookie 并查看它是否仍然有效,然后继续其他。

我希望通过以这种方式进行调试,它将带您找到问题的根本原因。

【讨论】:

    猜你喜欢
    • 2015-09-02
    • 2020-08-14
    • 1970-01-01
    • 2023-03-23
    • 2021-10-13
    • 1970-01-01
    • 2019-06-04
    • 2017-11-23
    • 2018-06-10
    相关资源
    最近更新 更多