Я работаю над веб-приложением, которое использует аутентификацию Форм.
<authentication mode="Forms">
<forms slidingExpiration="true"
loginUrl="~/User.aspx/LogOn"
timeout="15"
name="authToken" />
</authentication>
Я вижу этот набор cookie в своем браузере, когда я вхожу в систему:
Вопрос - то, что происходит, когда я поместил этот веб-сайт в загрузку сбалансированная модель? Где сеансовые куки ASP.net устанавливают? Я явно не сделал этого в коде, таким образом, я предполагаю, что это происходит негласно где-нибудь в ASP.NET.
Кроме того, Если сеансовые куки установлены веб-сервером A, я предполагаю, что веб-сервер B не будет распознавать его и рассматривать его как недопустимую сессию. Если это верно, я, вероятно, не хочу использовать его, правильно?
Вам нужно будет установить одинаковый ключ компьютера и одно и то же имя на обеих машинах ... если это будет сделано, у вас не должно возникнуть проблем с балансировкой нагрузки с помощью форм auth .
<authentication mode="Forms">
<forms loginUrl="~/Login/Index" defaultUrl="~/"
name=".myportal"
protection="All" slidingExpiration="true" timeout="20" path="/"
requireSSL="false"></forms>
</authentication>
<machineKey validationKey="534766AC57A2A2F6A71E6F0757A6DFF55526F7D30A467A5CDE102D0B50E0B58D613C12E27E7E778D137058E" decryptionKey="7059303602C4B0B3459A20F9CB631" decryption="Auto" validation="SHA1"/>
Сессии могут быть немного сложнее. Вы можете сохранить состояние сеанса ASP.Net в базе данных или использовать общий поставщик сеанса, чтобы сделать его доступным для балансировки нагрузки.
Вот хорошая статья о хранении состояния сеанса в БД: http://idunno.org/articles/277.aspx