Поскольку вы все отключили кэширование в режиме ядра, я хотел бы отметить некоторые другие соображения.
1) Чтобы правильно использовать HttpContext.Current.User.Identity.Name
, сначала необходимо убедиться, что ваш пользователь вошел в систему, используяUser.Identity.IsAuthenticated
2) в этот момент Session.Add("CurrentUser", currentUser);
что вы на самом деле пытаетесь сохранить?
Теперь я думаю, что проблема в кеше.Страницы хранятся где-то между вашими пользователями, и одна смешивается с другой.Некоторые заголовки, которые вы можете использовать на своей странице, чтобы избежать кэширования на средних прокси-компьютерах.
Response.Cache.SetExpires(DateTime.UtcNow.AddYears(-2));
Response.Cache.SetNoStore();
Response.Cache.SetValidUntilExpires(false);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ExpiresAbsolute = DateTime.Now.Subtract(new TimeSpan(1, 0, 0, 0));
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AppendHeader("Pragma", "no-cache");
Также я говорю, что если на ваших страницах есть данные, которыми вы не хотите делиться среди своих пользователей, вынеобходимо использовать защищенные HTTPS-страницы и настроить файлы cookie на доступность только на защищенных страницах, добавив <httpCookies httpOnlyCookies="true" requireSSL="true" />
на web.config
Кроме того, проверьте, сохраняете ли вы сеанс на сервере SQL, который вы запланировали запуститьдо маршрутизации каждую 1 минуту.
Чтобы найти больше информации, я предлагаю сохранить некоторый скрытый текст на страницах, например дату и время отрисовки, возможно, последние 4 цифры идентификатора пользователя,и что еще, возможно, поможет вам понять, была ли страница из кэша или нет.