После выпуска кода перестал работать единый вход между двумя нашими сайтами. Оба сайта работают на разных поддоменах одного домена. Субдомен x использовался в качестве сервера входа для всех других приложений. Я не могу понять, почему это так. В web.config для обоих сайтов ключи машины и расшифровки одинаковы. Для валидации установлено значение SHA1, а для дешифрования - AES. Конфигурация аутентификации гласит:
X:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" protection="All" name="Domain.ASPXAUTH" path="/" domain="domain.com" />
</authentication>
Y
<authentication mode="Forms">
<forms loginUrl="https://x.domain.com/Account/LogOn" timeout="2880" protection="All" name="Domain.ASPXAUTH" path="/" domain="domain.com" defaultUrl="http://x.domain.com/" />
</authentication>
До сегодняшнего утра SSO работал нормально. Я не уверен, что именно изменилось с выпуском кода, и у меня возникают проблемы с его выяснением. Эти два приложения в настоящее время работают в разных пулах приложений (одно из них - x .net 4.0, а y - .net 2.0), и когда я переключил их на использование одного пула приложений, сработал SSO. Однако это не вариант, поскольку одна из библиотек, используемых на другом сайте, работает только на .NET 2.0. Я также попытался принудительно использовать ключи машин и расшифровки, а также алгоритмы проверки и дешифрования в диспетчере IIS7 как на верхнем, так и на веб-сайтах, но безуспешно.
При попытке перейти на y.domain.com после перехода на x.domain.com браузер перенаправляется обратно на страницу входа, а в журнале событий появляется следующее исключение:
Проверка подлинности с помощью форм для
запрос. Причина: билет прилагается
был недействительным.
Есть идеи?