我已经在我的应用开发中使用Postman一段时间了,从来没有遇到任何问题。我通常在调试ASP.NET API代码时将其与Google Chrome一起使用。
大约一个月前,我开始遇到问题,邮差似乎没有发送我的网站发布的cookie。
通过Fiddler,我检查我正在对我的API进行的调用,并看到Postman没有发送我的API应用程序发出的cookie。它正在发送其他cookie而不是它应该发送的cookie - 见下文:
在“Cookie”下,我确实看到了我发出的Cookie,即.AspNetCore.mysite_cookie
- 见下文:
知道为什么会这样吗?
P.S。我认为这个问题是在我对我的代码进行一些更改以命名我的cookie之后开始的。我的API应用程序使用社交身份验证,我决定命名两个cookie,即我在用户通过身份验证后从Facebook / Google / LinkedIn收到的cookie,以及我向经过身份验证的用户发出的cookie。我将社交网站social_auth_cookie
中的Cookie和我发出的Cookie命名为mysite_cookie
。我认为这与我遇到的这个问题有关。
答案 0 :(得分: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,否则您将错过很多错误,并且您将无法执行任何有意义的笔测试或应用程序扫描潜在威胁。
答案 1 :(得分:1)
如果您在浏览器中使用了Cookie,则无需担心Cookie。
您可以通过安装Postman Interceptor扩展程序(&#34; In Sync&#34;按钮的左侧)来使用您的浏览器Cookie。
答案 2 :(得分:0)
我最近使用ASP.NET核心2.0遇到了这个问题。然而,ASP.NET Core 1.1似乎工作正常,并且在Postman中设置了cookie
答案 3 :(得分:0)
根据您所描述的情况,邮递员似乎没有拿起您想要的cookie,因为它无法识别cookie的名称,或者仍指向使用旧cookie,
你可以尝试的事情:
撤消所有名称更改,看看它是否有效(只是为了找到问题的根源)
重命名一个cookie并查看它是否仍然有效,然后继续其他。
我希望通过这种方式进行调试,它会将您带到问题的根本原因。