我在我的应用程序开发中使用 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 和我发布给经过身份验证的用户的 cookie。我调用从社交网站获取的 cookie social_auth_cookie
我发出的那个名为 mysite_cookie
.我认为这与我遇到的这个问题有关。
最佳答案
有问题的 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无论如何,否则您将错过很多错误,并且您将无法针对潜在威胁执行任何有意义的渗透测试或应用程序扫描。
关于asp.net - postman 没有使用cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46008640/