Hug*_*own 14 iis asp.net-mvc forms-authentication reverse-proxy
我有一个ASP.NET(MVC)网站,它提供静态内容(图像)以及来自同一域的动态内容.该站点使用表单身份验证,并具有登录控制器.人们发现自己随机登录或退出时出现了一些非常奇怪/不正常的问题,我们已经将其跟踪到一个问题,反向代理缓存了一个图像文件,该文件具有设置cookie响应标头身份验证cookie.一旦缓存,每个人都会得到相同的auth cookie,这会产生一些非常奇怪的结果.
我的问题是 - 图像如何首先得到一个固定的cookie标题?什么是ASP.NET表单身份验证模块正在做的事情 - 当然它在主HTML内容响应上设置cookie.我得到的是,然后将auth cookie与所有后续请求一起发送到域,但我无法弄清楚cookie是如何设置的.
(顺便说一句,这个问题也可能是至少两个现有大型电子商务网站的罪魁祸首,这些网站遇到类似问题,没有解决方案,因此这将是一个很好的解决方案).
响应如下所示(取自小提琴手).
HTTP/1.1 200 OK
Cache-Control: public, max-age=86400,max-age=86400
Content-Type: image/png
Last-Modified: Thu, 04 Nov 2010 16:00:52 GMT
Accept-Ranges: bytes
ETag: "0528474397ccb1:0"
Server: Microsoft-IIS/7.5
Set-Cookie: my-auth-cookie=6BC25F1EF71989466A48C0120E7739E; path=/; HttpOnly
Date: Wed, 17 Nov 2010 17:15:08 GMT
Content-Length: 15790
Run Code Online (Sandbox Code Playgroud)
更新:其他信息 - 我们在Win2008 R2,64位上使用IIS 7.5,该应用程序在使用集成管道/ .net 4的应用程序池下运行.
更新2:我不是在寻找问题的解决方案,我们已经有了解决方案.我正在寻找这个问题的答案,这就是为什么它首先发生的原因?请不要回答告诉我子域名或cookie如何工作!
更新3:添加请求:
GET https://www.example.com/sprite.png HTTP/1.1
Host: www.example.com
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: my-auth-cookie=6BC25F1EF71989466A48C0120E7739E;
Run Code Online (Sandbox Code Playgroud)
我自己回答这个问题是为了结束问题并防止进一步更新。
我所看到的行为的根本原因是静态文件(css、图像、js)上的集成管道设置 cookie - 请参阅评论线程以获取更多详细信息。
当我们将静态内容移动到生产/暂存环境中的不同主机时,这个问题得到了解决。
| 归档时间: |
|
| 查看次数: |
3314 次 |
| 最近记录: |