Мой сайт позволяет анонимным пользователям.
Я видел, что при большой нагрузке анонимные пользователи иногда получают значения профиля от других пользователей.
Сначала я удаляю свои куки и получаю действительное уникальное значение в значении куки .ASPXANONYMOUS. После пары запросов я получаю новое значение для .ASPXANONYMOUS, которое уже используется другим пользователем. Я вижу в своих журналах, что всегда есть пара пользователей, которые имеют одинаковое значение в .ASPXANONYMOUS.
Я вижу в своих журналах, что 2 или более пользователей получают одинаковую кухню для .ASPXANONYMOUS, даже если у них разные IP.
Вот трафик htttp. На втором изображении показан изменяющийся файл cookie (Вы должны отобразить изображение в полном размере, чтобы прочитать журнал):
Один из множества нормально работающих запросов:
альтернативный текст http://img413.imageshack.us/img413/2711/log1.gif
Тогда есть один запрос, который изменяет cookie
альтернативный текст http://img704.imageshack.us/img704/8175/log2.gif
Затем используется новый файл cookie
альтернативный текст 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>
Кто-нибудь имеет представление, что еще я мог бы войти или на что я должен посмотреть?
UPDATE
Теперь я увидел, что http-трафик, который я показал, совершенно действителен. Изменение значения в .ASPXANONYMOUS происходит из-за того, что файл cookie обновляется. Значение содержит AnonymousID и метку времени.
Это не приводит к тому, что пользователи имеют одинаковое значение в .ASPXANONYMOUS при нормальных условиях.
Проблема действительно в том, что всякий раз, когда коки устанавливаются из модуля AnonymousIdentificationModule, есть вероятность, что пара пользователей получит этот cookie. Установка cookie в моем приложении не имеет такого странного недостатка.