У меня есть два веб-сайта с самописными поставщиками членства, которые размещены на одном сервере в одной сети в разных веб-приложениях и в разных пулах приложений.
Раньше у меня была проблема, что я не мог одновременно войти на оба сайта. Благодаря сообщению Реми это теперь работает, мне пришлось добавить name
-атрибут к элементу forms
.
Но теперь у меня есть проблема, что опция «запомнить меня» элемента управления входом asp перестала работать. Пользователь выходит из системы после обычного тайм-аута сеанса.
Атрибуты аутентификации в файле web.config выглядят следующим образом:
<authentication mode="Forms" >
<forms loginUrl="~/UserMgmt/Login.aspx" timeout="400000" slidingExpiration="true" name="NameOfTheSite"/>
</authentication>
Также я установил имя файла cookie для аутентификации форм на разные имена.
Есть ли что-то еще, что я должен добавить, чтобы функция запоминания работала?
Обновление
Я заметил, что если я отключу шифрование и проверку для файла cookie проверки подлинности форм, проблема исчезнет. Если я активирую шифрование, проверку или и то, и другое, проблема возникает заново.
Я также знаю, что это не зависит от имен файлов cookie сеанса (они даже могут быть идентичными). Может, эта информация кому-то поможет разобраться в происходящем?
Обновление 1
Спасибо Джейсону Кили за решение этой проблемы. Я бы никогда его не нашел. А пока я нашел соответствующую информацию в msdn. В Как: настроить MachineKey в ASP.NET 2.0 в разделе Написано «Рекомендации по развертыванию веб-фермы»:
Если вы хотите изолировать свое приложение от других приложений на том же сервере, поместите <machineKey>
в файл Web.config для каждого приложения на каждом сервере в ферме. Убедитесь, что вы используете отдельные значения ключей для каждого приложения, но дублируете ключи каждого приложения на всех серверах фермы.