当前位置:  开发笔记 > 后端 > 正文

为什么asp.net不会在localhost中创建cookie?

如何解决《为什么asp.net不会在localhost中创建cookie?》经验,为你挑选了2个好方法。

好的,这真的有点开始让我烦恼.我有一个简单的Web项目设置位于:"C:\ Projects\MyTestProject \".在我的机器上的IIS中,我已经将虚拟目录映射到此位置,因此我可以在本地运行我的站点(我知道我可以从Visual Studio运行它,我更喜欢这种方法).我已将此虚拟目录命名为"mtp",我通过http://localhost/mtp/index.aspx访问它.这一切都很好.

但是,每当我尝试创建一个cookie时,它根本就不会被写出来?我在FF3和IE7中试过这个,它只是简单的不会写出cookie.我不明白.我的主机文件中有"127.0.0.1 localhost",我真的无法想到我能做的其他事情.谢谢你的建议.

詹姆士



1> Sire..:

cookie规范需要两个名称和一个点之间,因此您的cookiedomain不能是"localhost".这是我解决它的方式:

    将其添加到%WINDIR%\ System32\drivers\etc\hosts文件:127.0.0.1 dev.livesite.com

    在开发时,使用http://dev.livesite.com而不是http:// localhost

    在创建cookie时,使用".livesite.com"作为cookiedomain(在开头有一个点).现代浏览器不再需要前导点,但您可能希望无论如何都要使用后向兼容性.

    现在它适用于所有网站:

    http://dev.livesite.com

    http://www.livesite.com

    http://livesite.com


很棒的帖子,为什么这个没有被选为答案?
为我工作.谢谢.
这绝对是答案.
那么ASP.NET会话如何为localhost工作?显然,它正在为会话存储cookie.我可以在我的cookie检查员中看到它们.将路径设置为"/"的技巧是什么?

2> Jason Eades..:

由于答案从未被选中,我想我仍然可以扔掉其他东西.

使用在localhost下运行的应用程序编写的cookie不会遇到的一个原因是web.config中的httpCookies设置.如果域属性设置为特定域并且您在localhost下运行,则不会为我编写cookie.

删除开发中的域属性并编写cookie:





推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有