邮差不使用cookie

时间:2017-09-01 22:22:22

标签: asp.net google-chrome cookies postman

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

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

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

enter image description here

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

enter image description here

知道为什么会这样吗?

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

4 个答案:

答案 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。

Postman Interceptor

答案 2 :(得分:0)

我最近使用ASP.NET核心2.0遇到了这个问题。然而,ASP.NET Core 1.1似乎工作正常,并且在Postman中设置了cookie

答案 3 :(得分:0)

根据您所描述的情况,邮递员似乎没有拿起您想要的cookie,因为它无法识别cookie的名称,或者仍指向使用旧cookie,

你可以尝试的事情:

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

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

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

相关问题