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