Cookies 为什么赢了';asp.net是否在本地主机中创建cookie?

Cookies 为什么赢了';asp.net是否在本地主机中创建cookie?,cookies,localhost,Cookies,Localhost,好吧,这真的让我有点烦了。我有一个简单的Web项目设置,位于:“C:\Projects\MyTestProject\”。在我机器上的IIS中,我已将虚拟目录映射到此位置,以便在本地运行我的站点(我知道我可以从Visual Studio运行它,我更喜欢这种方法)。我已将此虚拟目录命名为“mtp”,并通过访问它。这一切都很好 然而,每当我尝试创建cookie时,它就永远不会被写出来?我在FF3和IE7中尝试过这个,但它显然无法写出cookie。我不明白。我的hosts文件中有“127.0.0.1 l

好吧,这真的让我有点烦了。我有一个简单的Web项目设置,位于:“C:\Projects\MyTestProject\”。在我机器上的IIS中,我已将虚拟目录映射到此位置,以便在本地运行我的站点(我知道我可以从Visual Studio运行它,我更喜欢这种方法)。我已将此虚拟目录命名为“mtp”,并通过访问它。这一切都很好

然而,每当我尝试创建cookie时,它就永远不会被写出来?我在FF3和IE7中尝试过这个,但它显然无法写出cookie。我不明白。我的hosts文件中有“127.0.0.1 localhost”,我真的想不出还能做什么。谢谢你的建议


James

您是否为cookie指定了过期日期?默认情况下,浏览器会话到期时cookie将过期,这意味着它不会向磁盘写入任何内容。

cookie规范需要两个名称和一个点,因此cookiedomain不能是“localhost”。我是这样解决的:

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

  • 在开发时,您使用而不是

  • 创建cookie时,请将“.livesite.com”用作cookiedomain(开头有一个点)。 现代浏览器,但您可能希望使用任何向后兼容

  • 现在它可以在所有站点上运行:


  • 既然从来没有人选择过答案,我想我还是可以把别的东西扔出去

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

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

    <!-- Development -->
    <httpCookies httpOnlyCookies="true" requireSSL="false" />
    <!-- Production -->
    <!--<httpCookies domain=".domain.com" httpOnlyCookies="true" requireSSL="true" />-->
    
    
    
    < /代码>你使用什么来检查cookie的存在?你能提供cookie创建部分的示例代码吗?这里确实需要示例代码。@杰姆斯,考虑标记正确的答案。谢谢。这篇文章可能重复,为什么不选择它作为答案?这肯定是答案。这是非常有用的信息,因为我想知道为什么在调试会话之间会删除我制作的cookie。那么ASP.NET会话如何在localhost中工作?显然,它正在为会话存储cookies。我可以在我的饼干检查员身上看到它们。将路径设置为“/”的技巧很好吗?错误的请求-无效的主机名很好,节省了我几个小时的研究时间。我觉得我的代码有问题。谢谢,儿子,这似乎是一种危险的做法。发布时很容易忘记/错过。@user158443在同一配置中不会有这些行。我发布的xml是为了说明问题的可能原因,而不是关于配置文件应该是什么样子的建议。至少你可以通过配置转换或类似的方式来处理这个问题。将requireSSL设置为“false”对我来说很有效。