我的网站允许匿名用户。 我看到,在负载过重的情况下,匿名用户有时会获得其他用户的个人资料值。
我首先删除我的cookie并在cookie值中获得有效的唯一值.ASPXANONYMOUS。在几个请求之后,我得到了另一个用户已经使用的.ASPXANONYMOUS的新值。我在logg中看到,总有几个用户在.ASPXANONYMOUS中共享相同的值。
我可以在我的日志中看到2个或更多用户真正获得.ASPXANONYMOUS相同的cookie值,即使他们有不同的IP。
这是htttp流量。在第二个图像中显示更改cookie(您必须显示完整大小的图像才能读取日志):
许多可以正常工作的请求之一:
alt text http://img413.imageshack.us/img413/2711/log1.gif
然后有一个更改Cookie的请求 alt text http://img704.imageshack.us/img704/8175/log2.gif
然后使用新Cookie
alt text http://img704.imageshack.us/img704/3818/log3.gif
为了安全起见我删除了依赖注入。 我不使用OutputCaching。
我的web.config具有以下身份验证设置:
<anonymousIdentification enabled="true" cookieless="UseCookies" cookieName=".ASPXANONYMOUS"
cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" />
<authentication mode="Forms">
<forms loginUrl="~/de/Account/Login" />
</authentication>
有没有人知道我还能记录什么或者我应该看看什么?
更新
我现在看到我展示的http流量完全有效。 .ASPXANONYMOUS中的值发生变化是因为cookie被刷新。该值包含AnonymousID和时间戳。
这不会导致用户在正常条件下具有相同的.ASPXANONYMOUS值。
问题在于,无论何时从AnonymousIdentificationModule设置cokies,都有可能有几个用户获得此cookie。在我的应用程序中设置cookie并没有这个奇怪的副作用。
答案 0 :(得分:3)
我遇到了同样的问题,解决方案是关闭调用SetCookie的响应的输出缓存。以下是几个描述此
的链接答案 1 :(得分:1)
您是否在代码中声明了任何静态变量?我有这个类似的问题,并将其缩小到那个;至少对我而言。