我试着在ServerFault上发布这个没有运气,所以我在这里尝试。
我正在考虑设置一个新域来托管我网站上的静态内容,并使其像使用static domain的Stackoverflow一样无cookie。 所以在继续购买域并设置它之前,我想首先在我的开发机器上测试它在localhost下(我必须提到我计划在我的新域上运行IIS以获取静态文件)。
因此,我在IIS下创建了一个新应用程序,并禁用了会话状态和表单身份验证。当我的主应用程序需要css,images和js等资源时,我会使用托管它们的“静态”应用程序的路径。
问题在于,当我查看请求和请求文件的响应时,他们仍然定义了session_id cookie以及asp.net身份验证cookie。
是否有可能完成我在开发机器上尝试做的事情,或者我是否必须继续购买新的域名,希望将事情做好?我试着阅读关于cookieless域名,但无法弄清楚我可能会遗漏什么。
更新
我的设置如下。 我创建了两个Web应用程序。 - 该网站的一个Web应用程序 - 一个静态的一切Web应用程序(css,图像,脚本......)
两个应用程序都添加到IIS中,并且它们都不是另一个的子应用程序。 (它们都是IIS结构下的独立网站。)
我想知道两个网站在同一个IP下是否可以解释我的结果,但是当我部署这两个网站时,问题就消失了。
答案 0 :(得分:7)
确保您拥有以下web.config设置:
<sessionState mode="Off" />
<authentication mode="None" />
我认为这就是全部,尽管我还没有测试过。为了安全起见,您可以使用Creating Static Content Website in IIS 7中的建议来禁用所有模块,并且只在必要时重新启用它们:
<system.webserver>
<modules>
<clear />
<add name="StaticFileModule" ... />
...
</modules>
...
</system.webserver>
PS:有关设置缓存值的提示,请参阅this answer。
答案 1 :(得分:1)
基本理念:
参考:
- Stopping cookies being set from a domain (aka "cookieless domain") to increase site performance
- How to respect "Serve static content from a cookieless domain" page speed rule in IIS6?
- Avoiding cookies while requesting static content
答案 2 :(得分:0)
答案 3 :(得分:0)
您是否在Page的Load方法结束时尝试了Response.Cookies.Clear()? 这应该消除Response对象中的所有cookie,并且不会将cookie发送到客户端。这可以在Web模块或HttpHandler中完成。