为什么不会在本地主机上创buildcookie?

好的,这真的有点开始纠缠我了。 我有一个简单的Web项目设置位于:“C:\ Projects \ MyTestProject \”。 在我的机器上的IIS,我已经映射到这个位置的虚拟目录,所以我可以在本地运行我的网站(我明白我可以从Visual Studio中运行它,我更喜欢这个方法)。 我已经命名这个虚拟目录“mtp”,我通过http://localhost/mtp/index.aspx访问它。 这一切工作正常。

然而,每当我尝试创build一个cookie,它根本就不会被写出来? 我已经在FF3和IE7中尝试过这一点,它只是简单的不会写出cookie。 我不明白。 我的hosts文件里有“127.0.0.1 localhost”,我真的不能想到我能做的其他事情。 感谢您的任何build议。

詹姆士

cookie规范需要两个名称和一个点之间,所以你的cookiedomain不能是“localhost”。 以下是我解决它的方法:

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

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

  3. 创buildcookie时,使用“.livesite.com”作为cookiedomain(在开头有一个点)。

  4. 现在它适用于所有网站:

由于从来没有select答案,我想我仍然可以把其他东西扔在那里。

你可以运行在没有使用在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将过期,这意味着它不会向磁盘写入任何内容。