Мы наблюдаем какое-то странное поведение в наших журналах веб-сервера, где идентификатор пользователя, который в настоящее время вошел в систему, похоже, заменяется другим пользователем. Я опишу нашу настройку, прежде чем объяснять ее далее.Идентификация подлинности Windows между пользователями
Мы запускаем веб-сайт asp.net (v3.5 на фреймворке) на двух веб-серверах Windows 2008 и используем проверку подлинности. Они сбалансированы по нагрузке с использованием отдельного сервера под управлением Apache 2.2 на Linux (Cent OS 5) , Балансировка нагрузки просто придает cookie пользователю и направляет его на конкретный сервер для каждого последующего запроса.
Мы видим на образцах случаю в журнале, как это (подробности) сбивающих с толку
Первый журнальной записи
UserName - [email protected]
USERID - 1111
Webpage - page1
IP - ip1
Время - 2010-06-29 12: 56: 20,750
SessionId - h3uyz2fsdfegugjy452sdz0far
Второй Вход Вход
UserName - [email protected]
UserId - 2222
WebPage - page2
IP - ip2
Время - 2010-06-29 12: 57: 16,133
SessionId - 21ipjsdfsdfieqqwyfdokgqsb55
Мы используем проверки подлинности форм с использованием стандартных форм ASP.NET структуры аутентификации (стандартный контроль входа в систему, и мы реализовали настраиваемого поставщика членства).
UserName - это идентификатор Windows, полученный с помощью «HttpContext.Current.User.Identity.Name». UserId - это идентификатор базы данных, установленный в сеансе. SessionId извлекается с помощью «HttpContext.Current.Session.SessionID»
Как вы можете видеть, одинаковое идентификатор Windows одинаково для двух разных пользователей под разными IP-адресами и с разными идентификаторами сеанса, попав на сайт примерно одинаково время. Мы проверили, и IP-адреса были из разных мест. Кажется, что неправильная идентификация окон записывается. UserId 2222 должен иметь другое имя пользователя.
Поскольку это происходит очень редко, код является стандартным и не изменился существенно в течение некоторого времени, мы не «думаем», что это ошибка кодирования. Мы предполагаем либо проблему с балансировщиком нагрузки, либо некоторые проблемы на веб-сервере. Я никогда не слышал о таких проблемах в asp.net раньше.
Недавно мы изменили нашу настройку с IIS6 на Windows 2003 и аппаратный балансировщик оборудования Cisco на текущую настройку IIS7 в Windows 2008 и балансировку нагрузки Apache. Любые идеи оценили.
Элемент аутентификации форм в сети.конфигурации является
Режим проверки подлинности = "Формы"
формы loginUrl = имя "LoginPage.aspx" = "ASPXFORMSAUTH"
У вас есть более одного веб-сайта, работающего на ваших серверах? – TheGeekYouNeed
Да, есть 2 веб-сайта – scottrm
Когда вы говорите, что вы отключили кеширование вывода, вы имеете в виду, что вы его отключили, или вы удалили все директивы кэширования? Мы видим то же самое! – 2011-02-04 14:56:03