Мой сайт позволяет анонимным пользователям. Я видел, что под большой нагрузкой анонимные пользователи иногда получают значения профиля у других пользователей.
Сначала я удалю свои файлы cookie и получаю действительное уникальное значение в файле cookie.ASPXANONYMOUS. После нескольких запросов я получаю новое значение для .ASPXANONYMOUS, которое уже используется другим пользователем. Я вижу в своих журналах, что всегда есть пара пользователей, которые имеют одинаковое значение в .ASPXANONYMOUS.
В моих журналах я могу видеть, что 2 или более пользователя действительно получают одинаковый файл cookie для .ASPXANONYMOUS, даже если у них разные 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>
Есть ли у кого-нибудь идеи, что еще я мог бы зарегистрировать или что я должен посмотреть?
UPDATE
Теперь я увидел, что http-трафик, который я показал, абсолютно прав. Изменение значения в .ASPXANONYMOUS - это то, что происходит, потому что cookie обновляется. Значение содержит AnonymousID и временную метку.
Это не приводит к тому, что пользователи имеют одинаковое значение в .ASPXANONYMOUS при нормальных условиях.
Реально проблема заключается в том, что всякий раз, когда cokies устанавливаются из AnonymousIdentificationModule, есть вероятность, что пара пользователей получит этот файл cookie. Настройка cookie в моем приложении не имеет этого странного побочного эффекта.